编程习惯-函数无参数用void填充

简介: 如果函数无参数,那么应声明其参数为voidint function(){ return 1;}int main(void){ int ret = 0; ret = function(2); pr...

如果函数无参数,那么应声明其参数为void


<pre name="code" class="cpp">

 
 
int function()
{
	return 1;
}

int main(void)
{
	int ret = 0;
	ret = function(2);
	printf("rst:%d\n", ret);
	return 0;
}

如果用gcc编译器(即C语言编译器)编译如上代码,没有编译错误,函数正常return(1),但是此时程序员已经误用了function函数,给其传入了参数,但是编译器忽略了,因为在定义function函数的时候没有指定参数必须为空,而是处于缺省状态。

但是如果使用g++(C++编译器)编译器去编译这段代码,就会出现编译错误如下:

"error: too many arguments to function ''int function()"

所以,无论在C 还是C++中,若函数不接受任何参数,一定要指明参数为void。以免某些编译器忽略了代码错误!!!

参考:

http://c.biancheng.net/cpp/html/444.html


目录
相关文章
|
C++
17 C++ - 函数的占位参数
17 C++ - 函数的占位参数
65 0
|
4月前
|
语音技术
语音识别----函数基础定义联系案例,函数的参数,函数的参数练习案例,函数的返回值定义语法,函数返回值之None,函数的说明文档,函数的嵌套调用,变量在函数中的作用域,内部变量变全局变量用global
语音识别----函数基础定义联系案例,函数的参数,函数的参数练习案例,函数的返回值定义语法,函数返回值之None,函数的说明文档,函数的嵌套调用,变量在函数中的作用域,内部变量变全局变量用global
|
6月前
|
JavaScript 前端开发
分享函数中 this 在不同场景下的指向与默认值,动态指定函数 this 值的方法
分享函数中 this 在不同场景下的指向与默认值,动态指定函数 this 值的方法
|
5月前
|
JavaScript
js -- 函数总结篇,函数提升、动态参数、剩余参数、箭头函数、this指向......
js -- 函数总结篇,函数提升、动态参数、剩余参数、箭头函数、this指向......
|
6月前
|
C语言
C语言函数传递了指针,值没有被修改的原因及解决方法
C语言函数中传递了指针作为参数,确切来说是传递了指向变量的内存地址作为参数,可经过函数内的修改之后,该指针指向的变量的值为什么不会被修改?就像下方这个函数:
109 1
函数的占位参数
函数的占位参数
40 0
|
存储 编译器
初始化函数的另一种写法
利用编译器的特性,在程序编译时将各模块初始化函数顺序存放到内存的指定地址,然后在程序运行时main函数从这块内存区域中,依次调用各模块的初始化函数,自动完成各个模块的初始化工作,同时增强了程序的高内聚低耦合特性,提高了软件的质量。
初始化函数的另一种写法
编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。
编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。
|
C++ Windows
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
1713 0
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数