PDA

View Full Version : حرفه ای: کد عجیب و کامپای ارور



hariri
چهارشنبه 04 دی 1392, 22:20 عصر
سلام
من یه کد به زبان C دارم که میخوام کامپایلش کنم
مشکل اینه که این کد خیلی عجیب نوشته شده :گریه:
مشکل دوم اینه که کامپایلر من با کامپایلر اصلی فرق داره و کامپایل ارور میگیرم ( کد مطمئنه )
حالا چیزی که از شما میخوام اینه که این کد رو واسه من یه کمی روشن کنید تا بتونم ارورش رو رفع کنم:خجالت:
اینها خط هایی هستند که ارور میدهند

const struct httpd_fsdata_file file_404_html[] = {{NULL, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10, 0}};

const struct httpd_fsdata_file file_index_html[] = {{file_404_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12, 0}};

const struct httpd_fsdata_file file_index_shtml[] = {{file_index_html, data_index_shtml, data_index_shtml + 13, sizeof(data_index_shtml) - 13, 0}};

const struct httpd_fsdata_file file_io_shtml[] = {{file_index_shtml, data_io_shtml, data_io_shtml + 10, sizeof(data_io_shtml) - 10, 0}};

const struct httpd_fsdata_file file_runtime_shtml[] = {{file_io_shtml, data_runtime_shtml, data_runtime_shtml + 15, sizeof(data_runtime_shtml) - 15, 0}};

const struct httpd_fsdata_file file_stats_shtml[] = {{file_runtime_shtml, data_stats_shtml, data_stats_shtml + 13, sizeof(data_stats_shtml) - 13, 0}};

const struct httpd_fsdata_file file_tcp_shtml[] = {{file_stats_shtml, data_tcp_shtml, data_tcp_shtml + 11, sizeof(data_tcp_shtml) - 11, 0}};


که البته در کد بالا از نوع داده ی httpd_fsdata_file استفاده شده که در فایل دیگری تعریف شده (نگید که همه ی کد های پروژه رو بزارم فقط حدود 60 تا فایل c. داره هدر فایلاش از اینم بیشتره!)

struct httpd_fsdata_file {
const struct httpd_fsdata_file *next;
const char *name;
const char *data;
const int len;
#ifdef HTTPD_FS_STATISTICS
#if HTTPD_FS_STATISTICS == 1
u16_t count;
#endif /* HTTPD_FS_STATISTICS */
#endif /* HTTPD_FS_STATISTICS */
};

در مورد بقیه متغیر ها هم بگم data_404_html از نوع []char هست بقیش هم اگه مهمه بگید بزارم
راستی ارور رو یادم رفت بگم
array type has incomplete element type
روی هر شیش تا خط
برای این که بدونید این کد چیکار میکنه
قراره ارتباط شبکه tcp/ip رو توی یه سیتسم عامل غیر معروف برقرار کنه به نام free-rtos البته کد های دیگه هم واسه این کار دارم که جواب هم ازشون گرفتم ولی ارتباطی که برقرار میشد خیلی کند بود
فکر کنم کلید حل مشکل کلید واژه ی ُstruct باشه دقیقا چی کار میکنه توی کامپایلر؟
اینم نوع استفاده از متغیر هایی که توی اون 6 خط تعریف شدن (فقط متغیر آخر استفاده شده)

for(f = (struct httpd_fsdata_file_noconst *)file_tcp_shtml;
f != NULL;
f = (struct httpd_fsdata_file_noconst *)f->next) {

if(httpd_fs_strcmp(name, f->name) == 0) {
return count[i];
}
++i;
}

بسم الله :متفکر: بزارین ما هم یه چیزی یاد بگیریم

hariri
پنج شنبه 05 دی 1392, 11:07 صبح
یه نفر جواب نمیده؟
به من گفتن سایت شما خوبه
خب مشکل کجاس؟

omidshaman
پنج شنبه 05 دی 1392, 11:27 صبح
برای استفاده از obj که بصورت Struct ساخته شده توی c باید قبلش struct گذاشته بشه .
اطلاعات بیشتر :http://en.wikipedia.org/wiki/Struct_%28C_programming_language%29
آخرین صفری که تو اون چند تا اولی هست رو پاک کن ببین چی میشه ؟