【发布时间】:2012-10-08 16:55:01
【问题描述】:
我收到关于以下函数的“无效使用无效表达式”错误:
void remove_data(char* memory, char* bitmap, int pos)
{
int i;
i = (int)test_bit(bitmap, pos-1);
if(i != 0)
{
memory[pos-1] = NULL;
toggle_bit(bitmap, pos-1);
}
}
现在,根据我在其他线程上阅读的有关此类似问题的内容,当程序员在函数中使用将生成输出的内容时,会弹出此错误。但是,在我编写的代码中,我看不出是什么原因造成的。
编辑添加:
其中使用的toggle bit函数也是void类型,不返回值。
void test_bit(char * bitmap, int pos)
{
int bit;
bit = bitmap[pos/8] & (1<<(pos%8));
printf("%d\n", &bit);
}
我在 test_bit 中注释了 printf 行,但错误仍然存在。
【问题讨论】:
-
你到底从哪里得到错误,
test_bit和toggle_bit的声明是什么? -
toggle_bit 似乎无关紧要,应该显示 test_bit 的定义
-
void test_bit 确实有一个 printf,我专注于在 remove_data 中找到我完全忘记检查它调用的函数的错误。
-
@Kali:你有你的答案......
-
那么将无返回类型转换为
int的结果应该是什么?
标签: c