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;
}
بسم الله :متفکر: بزارین ما هم یه چیزی یاد بگیریم
من یه کد به زبان 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;
}
بسم الله :متفکر: بزارین ما هم یه چیزی یاد بگیریم