انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: AAAAAAAAAAAAAAAAAAAA در 25 خرداد 1395، 10:29 بظ
-
کدی مثل این کد رو کامپایل کردم
# include <stdio.h>
main()
{
int var;
for (var = 400,var >= 0 ,var = var-20 )
printf( "%3d %6.1f\n" , var , (5.0/9.0)*(var-32));
}
و این خطا رو گرفتم
thermometer.c: In function ‘main’:
thermometer.c:7:44: error: expected ‘;’ before ‘)’ token
for (var = 400,var >= 0 ,var = var-20 )
^
thermometer.c:7:44: error: expected expression before ‘)’ token
واقعا نمیفهمم، مشکل چیه؟
-
#include <stdio.h>
int main(void)
{
for (int i = 400; i >= 0; i = i-20)
printf( "%3d %6.1f\n" , i , (5.0/9.0)*(i-32));
return 0;
}
۱-در زبان سی باید روشن کنید هر تابع چه نوعی برمیگردونه. بهجز استاندارد c89 که پیشفرض int درنظر گرفته میشه.
۲-بین include و # فاصله گذاشتید که اینکار در ماکروها اشتباهست.
۳-در حلقهٔ for بین عبارتها بهجای ; از , استفاده کردید.
۴-آخرین استاندارد c11 است بنابراین میتونید متغیر محلی درون for تعریف کنید.
پیشنهاد میکنم اگر زبان سی رو فرامیگیرید اول کتاب K&R رو بخونید و بعد دانشتون رو دربارهٔ زمینههای دیگه برای مثال؛ x86 assembly و غیره بگسترانید.
-
#include <stdio.h>
int main(void)
{
for (int i = 400; i >= 0; i = i-20)
printf( "%3d %6.1f\n" , i , (5.0/9.0)*(i-32));
return 0;
}
۱-در زبان سی باید روشن کنید هر تابع چه نوعی برمیگردونه. بهجز استاندارد c89 که اگر مشخص نکنید یک تابع چه نوعی برمیگردونه int درنظر گرفته میشه.
۲-بین include و # فاصله گذاشتید که اینکار در ماکروها اشتباهست.
۳-در حلقهٔ for بین عبارتها بهجای ; از , استفاده کردید.
۴-آخرین استاندارد c11 است بنابراین میتونید متغیر محلی درون for تعریف کنید.
ممنون
این طور که معلومه کتابی که من دارم از روش مطالعه می کنم زیادی قدیمی شده.
جایی هست که تفاوت های سینتکس این استاندارد با استاندارد های قبلی و استاندارد های قبلی با قبلی تر ها و... نوشته شده باشه ؟ من چیزی در اینترنت پیدا نکردم
-
https://en.wikipedia.org/wiki/C11_%28C_standard_revision%29
چرکنویس استاندارد: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf