يمر التعداد في C
-
03-07-2019 - |
سؤال
وهذا قد يبدو وكأنه سؤال بسيط ولكن أنا على الحصول على خطأ عند إعداد هذا. أريد أن أكون قادرة على تمرير التعداد إلى أسلوب في C.
والتعداد
enum TYPES { PHOTON, NEUTRINO, QUARK, PROTON, ELECTRON };
واستدعاء الأسلوب
makeParticle(PHOTON, 0.3f, 0.09f, location, colour);
والطريقة
struct Particle makeParticle(enum TYPES type, float radius, float speed, struct Vector3 location, struct Vector3 colour)
{
struct Particle p;
p.type = type;
p.radius = radius;
p.speed = speed;
p.location = location;
p.colour = colour;
return p;
}
والخطأ وأنا على الحصول هو أنا عندما استدعاء الأسلوب:
<اقتباس فقرة>وأنواع غير متوافقة في مهمة
اقتباس فقرة>المحلول
ويجمع بشكل جيد بالنسبة لي، في هذا المثال قطع أسفل:
enum TYPES { PHOTON, NEUTRINO, QUARK, PROTON, ELECTRON };
void makeParticle(enum TYPES type)
{
}
int main(void)
{
makeParticle(PHOTON);
}
هل أنت متأكد أنك قمت بها إعلان TYPES
متاحة للقانون في كل من تعريف makeParticle
والدعوة إلى ذلك؟ فهو لن يعمل إذا كنت تفعل هذا:
int main(void)
{
makeParticle(PHOTON);
}
enum TYPES { PHOTON, NEUTRINO, QUARK, PROTON, ELECTRON };
void makeParticle(enum TYPES type)
{
}
ولأن التعليمات البرمجية main()
لم تشهد أنواع حتى الان.
نصائح أخرى
وحاول تغيير
p.type = type;
إلى
p.type = (int)type;
وإذا كان هذا لا يساعد، الرجاء إضافة ملف .C كله، بما في ذلك تعريف struct Particle
على سؤالك.
لا تنتمي إلى StackOverflow