本文介绍了为什么我不能将全局变量初始化为NULL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我有一个声明声明这样一个全局变量: char * pname = NULL; 然后我用夹板检查代码,我得到错误: err.c:8:15:全局pname初始化为空值:pname = NULL 没有null的引用注释被分配或初始化为 NULL。使用 / * @ null @ * /将引用声明为可能为空的指针。 (使用 -nullassign来禁止警告) err.c:8:15:全局pname初始化为空值:char * pname = NULL = NULL 这是什么意思? 感谢任何帮助,谢谢。I have a statement declares a globle variable like this :char *pname = NULL;Then I used splint to check the code, I got errors:err.c:8:15: Global pname initialized to null value: pname = NULLA reference with no null annotation is assigned or initialized toNULL. Use/*@null@*/ to declare the reference as a possibly null pointer. (Use-nullassign to inhibit warning)err.c:8:15: Global pname initialized to null value: char * pname = NULL= NULLWhat''s that mean?Any help is appreciated, thanks.推荐答案 在C中,所有全局指针变量都保证初始化为 NULL,因此将pname设置为NULL是过度的。这可能就是Splint 试图说的(但是以一种奇怪的方式)。 八月In C all global pointer variables are guaranteed to be initialized toNULL, so setting pname to NULL is overkill. That probably is what Splintis trying to say (but in a strange way).August 这是一个声明和一个定义, 但不是声明。 C全球保证指针变量初始化为 NULL,That''s a declaration and a definition,but not a statement. In C all global pointer variables are guaranteed to be initialized to NULL, ....除非代码将它们初始化为其他内容, 喜欢地址常数。 / * BEGIN new.c * / int global; int * pointer =& global; int main(void) { return * pointer; } / * END new.c * / - pete.... unless the code initializes them to something else,like an address constant./* BEGIN new.c */int global;int *pointer = &global;int main(void){return *pointer;}/* END new.c */--pete 这是一个声明和定义,但不是声明。 That''s a declaration and a definition, but not a statement. ...除非代码将它们初始化为其他东西,就像一个地址常数。 ... unless the code initializes them to something else, like an address constant. 叹息......Sigh... 这篇关于为什么我不能将全局变量初始化为NULL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-22 21:34