大佬教程收集整理的这篇文章主要介绍了C抱怨将char **值传递给函数,取char const * const * const但C却没有,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
C做世界上最简单的事情,它坚持你写的东西,就是这样,C另一方面以扭曲的方式运作,我无法理解.
例如,当传递给函数时,流行的argv是char * []当变成char **而我真的不明白为什么,我期望和“想要”的是char * const *但是我得到了这种行为.
您还可以阅读介绍C和C之间差异的this article in PDF,文章也以这句话结尾:
因为我在网上找不到这个问题(嵌入式系统编程 – 2000年2月,这个老问题是免费的),我想知道这句话可能意味着什么.
有人可以解释为什么这种行为是它在C中的方式?
编辑:
我的一个例子是
#include <stdio.h> void foo(int argc,const char *const *const argv) { printf("%d %s\n",argc,argv[0]); } int main(int argc,char *argv[]) { foo(argc,argv); return (0); }
如果你使用gcc 4.8.1编译它,你会得到预期的错误
gcc cv_1.c cv_1.c: In function ‘main’: cv_1.c:8:3: warning: passing argument 2 of ‘foo’ from incompatible pointer type [enabled by default] foo(argc,argv); ^ cv_1.c:3:6: note: expected ‘const char * const* const’ but argument is of type ‘char **’ void foo(int argc,const char *const *const argv) { ^
以上是大佬教程为你收集整理的C抱怨将char **值传递给函数,取char const * const * const但C却没有全部内容,希望文章能够帮你解决C抱怨将char **值传递给函数,取char const * const * const但C却没有所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。