Jac*_*ack 1 c null pointers function-prototypes
我有一个带有以下原型的函数,void init(int *argc,char**argv);但是在我的程序中随后调用此函数我不需要甚至不需要提供这样的参数.所以我创建一个名为int_null(哦,坏名字,我知道)的变量并传递给函数,init(&int_null, NULL)但我想到NULL了标准的零值,我可以使用它而不是int_null变量(只是为了避免创建这个变量),因为下面init(NULL,NULL)它工作正常.但我可以遇到一些问题吗?一些实现定义NULL为(void*)0或0或0L我确定它是否可能是一个问题.该函数需要理解argc为零.
char **bla1 = (void *) 0;
char **bla2 = 0;
char **bla3 = 0L;
Run Code Online (Sandbox Code Playgroud)
所有这些分配(初始化按照分配完成)在C和等效中都是有效的.
NULL如果期望的参数是类型int *或,则可以始终传递char **.
正如@R ..在他的评论中添加的那样,这最后一句是正确的,但是接受在prototyped(旧式)语法中定义的可变数量的参数和函数的函数除外.在这两种情况下都需要演员.