楼主想法有点乱啊。
创新互联主营科尔沁网站建设的网络公司,主营网站建设方案,重庆APP开发公司,科尔沁h5微信小程序开发搭建,科尔沁网站营销推广欢迎科尔沁等地区企业咨询
1.首先明确函数定义int paixu(int *p1,int *p2)最前边那个int是函数的返回类型,就是说这个函数最后要return一个值,并且这个值是int类型的。函数定义时可以省写返回类型int,此时默认返回的是int类型,但若你本来是想返回一个除了int类型外的其他类型,就不能省写了。
2.搞清函数声明、函数定义和函数调用的区别。
(1)函数声明:int paixu(int *p1,int *p2); 注意后边有个分号!!所谓声明就是先知会一声,告诉编译器有这么个函数。函数返回类型和参数类型都要标全!!声明中还有一点很有意思,它可以只标注参数的类型,而省写参数名字,就是这样int paixu(int *,int *) 。因为编译器看声明时只看参数的类型。
(2)函数定义:int paixu(int *p1,int *p2){ //函数体 } 函数定义是具体定义函数操作的地方,具体的操作语句都在大括号中进行。此时所有的类型和名字都要标注全。
(3)函数调用:paixu(p3,p4) 函数调用时不需要写类型名的,当然编译器会检查你所引用实参的类型与你定义的形参是否匹配,如不匹配会出错。如:这里的p3和p4若是其他的类型,例如float * p3,*p4;那就不行了。然后所谓的返回值就是说paixu(p3,p4)这个表达式最后是要得到一个值的,你之前定义的是int型,则它计算完就要得到一个int型的值,也就是说你可以定义一个int x;
x=paixu(p3,p4),即用x来接收储存这个值。
采用条件编译即可。
在.h头文件中加上
#if 1
#define FUNC_ENABLE
void fun();
#endif
在.c中加上
#ifdef FUNC_ENABLE
void fun() { printf("OK\n"); }
#endif
当我们不想编译该函数时,加#if 1改为#if 0即可。
例子:
#include stdio.h
#if 1
#define FUNC_ENABLE
void fun();
#endif
#ifdef FUNC_ENABLE
void fun() { printf("OK\n"); }
#endif
int main(void) {
fun();
return 0;
}
不能相同
c语言是不允许在函数中定义函数的
但是c语言的扩展语言有些可以完成
比如block(代码块)
就可以完成类似的功能
是的!
函数定义三大要素:
返回值类型 无返回值,则用void
函数名
括号+参数 无参数用( void )
以上三个是必不可少的
当然可以。
调用一个函数,必须保证这个函数名在之前出现过,你可以把函数体放前面,亦可以只写一个声明。。。。。
如果你调用一个函数,这个函数没有出现在调用这一行之前,可以只是个函数声明,也可以是函数体。。。编译就像看文章一样,一行行来的,前面没有提到过这个东西,那他就不知道是什么,所以不通过。。。。函数调用之前,必须要知道他的参数有几个,类型是什么,返回值是什么,前面没有,这就没法编译,函数声明就提供了所有这方便的内容,所以要在前面写清楚。。。
可以,只要符合命名规范就行了,也就是用字母、数字、下划线来命名,数字不能在开头
但函数名最好直观一点,使人一看就知道这个函数是干什么的,比如GetSize() 一看就知道是获得大小,就比f1()这样命名要好