我有一个bin数据表,用于示例目的:
static const unsigned char test_bin[28800] = {0};
#define TEST_DATA_COLUMNS 2
#define TEST_DATA_ROWS (sizeof(test_bin)/sizeof(float)/TEST_DATA_COLUMNS);
static const float (* test_data)[TEST_DATA_COLUMNS] = (const float (*)[TEST_DATA_COLUMNS]) test_bin;
字符串
这在error: expected expression before ';' token
中失败:
for(size_t i = 0; i < TEST_DATA_ROWS ; i++);
型
但这一工作
size_t nrows = TEST_DATA_ROWS;
for(size_t i = 0; i < nrows ; i++);
型
为什么?为什么?
godbot for quick testing
1条答案
按热度按时间liwlm1x91#
问题在于
TEST_DATA_ROWS
的define结尾处的尾随分号字符串
这意味着预处理器为循环生成以下内容
型
从define的末尾删除
;
可以解决问题。