
函数可以在调用函数的函数(比如main函数)之前定义,这样就无需声明了;
举例:
int add(int x,int y) { return x+y; } //在编译程序编译到main的调用add之处时,由于已经编译过add的函数了,因此编译程序已经知晓调用规则,因此可以省略声明语句void main() { int x=5,y=6,c; c=add(x,y); printf("%d\n",c); }
如果函数在调用函数的函数之后定义,为了通知编译程序要调用函数的格式,需要在调用函数的函数前添加函数的声明。
举例:
int add(int x,int y); //函数声明也可以简单地写成int add(int,int);通知编译程序main中调用add的规则即可void main() { int x=5,y=6,c; c=add(x,y); printf("%d\n",c); }
int add(int x,int y) { return x+y; }
1、首先,一个函数要想调用,就必须有函数的声明和定义。声明就是指在程序编译的时候告诉编译器,这是个内部函数。声明方式为:函数类型+函数名+函数参数,并且以分号结尾。
2、函数的调用就在你需要用到它的地方调就可以了,并且将参数传给它。
3、函数定义就是实现这个函数的功能。
希望对你有帮助!
函数声明是让代码调用点知道按照什么格式来调用函数。
(函数参数列表是什么,返回值是什么。)
否则调用点无法确知调用函数的格式。
(注:在C里也可以无函数声明就调用,那样会在程序链接的时候做调用匹配检查。但这非常非常不推荐这样做。
C++则完全屏蔽这种可能,如果出现未声明的调用,则直接编译报错。)
取决于你要传递的实际类型
如果你要传递一维数组或者一维指针,那么double或者double[]没有区别
参数用数组时,会自动转变成对应指针
如果是二维数组,就必须用数组形式或者数组指针形式
比如double [3][4]
可以就写double[3][4]
也可以double[][4]
也可以double()[4]
但是不能写成double
定义是分配空间并赋初值(如果有) 的声明。最好的安排是在某个相关的c 文件中定义, 然后在头文件(h) 中进行外部声明, 在需要使用的时候, 只要包含对应的头文件即可。定义变量的c 文件也应该包含该头文件, 以便编译器检查定义和声明的一致性。这条规则提供了高度的可移植性: 它和ANSI C 标准一致, 同时也兼容大多数ANSI 前的编译器和连接器。Unix 编译器和连接器通常使用“通用模式” 允许多重定义, 只要保证最多对一处进行初始化就可以了; ANSI C 标准称这种行为为“公共扩展”, 没有语带双关的意思。
可以使用预处理技巧来使类似DEFINE(int, i);的语句在一个头文件中只出现一次, 然后根据某个宏的设定在需要的时候转化成定义或声明。但不清楚这样的麻烦是否值得。如果希望让编译器检查声明的一致性, 一定要把全局声明放到头文件中。特别是, 永远不要把外部函数的原型放到c 文件中: 通常它与定义的一致性不能得到检查, 而矛盾的原型比不用还糟糕。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)