编程习惯-函数无参数用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


目录
相关文章
|
2月前
|
存储 Serverless Python
定义函数的方法
在编程中,函数是一个非常重要的概念。函数是一段可以重复使用的代码,它接受输入(称为参数),执行一系列操作,然后可能返回一些输出。通过定义函数,我们可以提高代码的可读性、可维护性和复用性。本文将介绍如何定义函数,并附上相应的代码示例。
13 1
|
4月前
|
C语言
C语言函数传递了指针,值没有被修改的原因及解决方法
C语言函数中传递了指针作为参数,确切来说是传递了指向变量的内存地址作为参数,可经过函数内的修改之后,该指针指向的变量的值为什么不会被修改?就像下方这个函数:
63 1
|
10月前
|
C++ Windows
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
|
11月前
|
Python
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
|
11月前
编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。
编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。
|
11月前
模拟实现字符串函数以及内存函数(均包含在头文件“string.h“中)
①不限字符个数型(strlen, strcpy, strcmp, strcat,strstr) ②限字符个数型(strncpy, strcmp, strncat) ③内存型(memcpy, memmove, memset)
57 0
|
存储 编译器
初始化函数的另一种写法
利用编译器的特性,在程序编译时将各模块初始化函数顺序存放到内存的指定地址,然后在程序运行时main函数从这块内存区域中,依次调用各模块的初始化函数,自动完成各个模块的初始化工作,同时增强了程序的高内聚低耦合特性,提高了软件的质量。
初始化函数的另一种写法
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
116 0
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
【QT】解决QT两个类之间传递变量失败,或者extern变量引用无效。
【QT】解决QT两个类之间传递变量失败,或者extern变量引用无效。
|
编译器 C语言 开发者
【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )
【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )
242 0

热门文章

最新文章