Ale*_*ols 13 c program-entry-point argv
我的主要功能如下:
int main(int argc, char const *argv[])
{
huffenc(argv[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器返回警告:
huffenc.c:76: warning: passing argument 1 of ‘huffenc’ discards qualifiers from pointer target type
作为参考,huffenc接受char*输入,并执行该功能,样本输入"无意识"通过./huffenc senselessness
这警告意味着什么?
Ed *_* S. 19
这意味着你将一个const参数传递给一个带有非const参数的函数,这可能因为明显的原因而变坏.
huffenc可能不需要非const参数,所以应该采取一个const char*.但是,您的定义main是非标准的.
C99标准第5.1.2.2.1节(程序启动)规定:
程序启动时调用的函数名为main.该实现声明此函数没有原型.它应该定义为返回类型为int且没有参数:
int main(void) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
或者有两个参数(这里称为argc和argv,虽然可以使用任何名称,因为它们是声明它们的函数的本地名称):
int main(int argc, char *argv[]) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
或等效的; 9)或以某种其他实施方式定义的方式.
继续说......
...参数argc和argv以及argv数组指向的字符串应由程序修改,并在程序启动和程序终止之间保留它们最后存储的值.
| 归档时间: |
|
| 查看次数: |
29273 次 |
| 最近记录: |