终于明白为什么无参数函数名,以及函数指针定义时参数列表一定要写上(void)而不是空着了
2010-10-01 01:35
453 查看
出自:http://blog.codingnow.com/2010/03/object_oriented_programming_in_c.html
在 C 语言中,void (*foo)() 可以被赋予任意返回 void 的函数指针。即,你可以把 void foobar(int) 的地址赋予前面的 foo 变量(这是由 C 标准的参数传递规则保证的)。
所以,在 C 语言编程中需要注意。如果你想定义一个不接受参数的函数,并让编译器帮你检查出那些错误的多传递了参数的语句。你必须在 .h 文件中严格定义 void foo(void) 以示 foo 函数不接受参数。
在 C 语言中,void (*foo)() 可以被赋予任意返回 void 的函数指针。即,你可以把 void foobar(int) 的地址赋予前面的 foo 变量(这是由 C 标准的参数传递规则保证的)。
所以,在 C 语言编程中需要注意。如果你想定义一个不接受参数的函数,并让编译器帮你检查出那些错误的多传递了参数的语句。你必须在 .h 文件中严格定义 void foo(void) 以示 foo 函数不接受参数。
相关文章推荐
- C语言学习6 :指针的定义,指针类型要合法,指针要初始化,指针做函数参数,数组和指针的通用性,指针+1所代表的空间,void * 指针,交换函数中的指针,数组和字符型指针区别,字符型指针的应用,使用指针完成字符操作函数
- 为什么time(time_t *)函数里还有一个loc参数而不是time(void)
- 函数调用缺少参数列表;请使用“&Student::Printf”创建指向成员的指针 问题解析
- 函数调用缺少参数列表;请使用“&****Dlg::getThread”创建指向成员的指针”--多线程函数调用
- 函数指针作为某个函数的参数及定义函数指针
- const可以出现在函数头,参数列表,以及参数尾
- 函数定义使用说明递归参数函数指针,李白打酒,程序例子
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- error: 函数调用缺少参数列表;请使用“&BinTree<char>::_PrintNode”创建指向成员的指针
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数
- C++语言笔试题目写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n&字符指针、浮点数指针、以及函数指针占用的内存等
- vs2010 error C2470: “ClassA”: 看起来像函数定义,但没有参数列表;跳过明显的函数体
- C++学习笔记:函数指针语法基础以及函数指针做函数参数的思想剖析
- C为什么要把数组类型的函数参数认为是指向数组第一个元素的指针
- C++之函数参数的值传递、指针传递以及引用传递的区别和联系
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数 .txt
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数
- 函数重载,函数重写(虚函数重写),函数重定义(非虚函数重写),以及名称覆盖(函数重定义时,与父类参数个数不同,或是参数类型不同)
- UNREFERENCED_PARAMETER,函数定义中没有使用函数入口的参数列表中的参数
- Python自学笔记之函数2——定义函数以及函数的参数