【发布时间】:2012-09-21 19:25:58
【问题描述】:
我试图调用一个自写的函数而不处理它的返回值。 gcc 在函数调用的那一行告诉我,这将是一个没有效果的语句。 为了检查我的函数是否被调用,我添加了一些 printf 语句,但没有从程序中得到任何输出。
gcc 是否有可能只是忽略函数调用?据我所知,我对这样的陈述从来没有任何问题。
代码如下:
unsigned strlen(char *string)
{
printf("ignored by gcc");
unsigned count = 0;
for(; *string++; count++);
return count;
}
int main()
{
char string[] = "something";
strlen(string);
return 0;
}
提前致谢。
【问题讨论】:
-
您偶然发现了一个同名的标准 C 函数。除非您有充分的理由,否则请使用该理由而不是自己制作。
-
调用你的函数,gcc使用内置的
strlen。 -
关闭似乎没有必要。与这里关于一个人代码的非常具体细节的无数问题相比,其他人更有可能遇到这种情况。