标签:c-3 c void refactoring
参见英文答案 > Is there a difference between foo(void) and foo() in C++ or C? 4个
> Understanding the difference between f() and f(void) in C and C++ once and for all 4个
我目前正在重构/整理C项目中使用的一些旧C代码,并定期查看以下函数:
int f(void)
我倾向于写作:
int f()
是否有任何理由不在整个代码库中用()替换(void)以提高一致性,或者两者之间是否存在我不知道的细微差别?更具体地说,如果C中的虚拟成员函数被描述为:
virtual int f(void)
派生类包括成员函数:
int f()
这是一个有效的覆盖?另外,基于几乎相同的签名,我是否可能遇到任何链接器问题?
解决方法:
在C中,声明int f(void)表示返回int的函数,它不带参数.声明int f()表示返回int的函数,它接受任意数量的参数.因此,如果你有一个在C中没有参数的函数,前者就是正确的原型.
在C中,我认为不推荐使用int f(void),并且首选int f(),因为它特别指的是不带参数的函数.
标签:c-3,c,void,refactoring 来源: https://codeday.me/bug/20190918/1810678.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。