精华内容
下载资源
问答
  • C语言函数定义和函数声明

    万次阅读 多人点赞 2017-11-10 10:04:18
    C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言定义函数后,在使用前,需要在main函数前进行声明,否则会报错。 #include //使用函数前,需要在main函数前对...

    C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言中定义函数后,在使用前,需要在main函数前进行声明,否则会报错。

    #include<stdio.h>
    
    //使用函数前,需要在main函数前对使用的函数进行声明
    int getMax(int, int);
    
    void main() {
    	int t=getMax(12, 21);
    	printf("%d\n", t);
    	getchar();
    }
    
    int getMax(int a, int b) {
    	if (a > b) {
    		return a;
    	}
    	else {
    		return b;
    	}
    }

    或者将函数定义在main函数的前面,则不需要声明

    #include<stdio.h>
    
    int getMax(int a, int b) {
    	if (a > b) {
    		return a;
    	}
    	else {
    		return b;
    	}
    }
    void main() {
    	int t=getMax(12, 21);
    	printf("%d\n", t);
    	getchar();
    }
    
    


    注意:在其他函数中调用自定义的函数时,也是要在调用者前进行声明,或者定义在调用者前,否则会报错无法使用

    展开全文
  • C语言定义函数指针

    千次阅读 2018-06-09 10:15:19
    //void (*p)(char s[]) 函数指针的定义方法//void (*)(char *s) 函数指针的类型int add(int a, int b){ return (a + b);}int sub(int a, int b){ return (a - b);}int main(int argc, char *argv[])...

    #include <stdio.h>


    //void (*p)(char s[]) 函数指针的定义方法
    //void (*)(char *s)   函数指针的类型

    int add(int a, int b)
    {
        return (a + b);
    }

    int sub(int a, int b)
    {
        return (a - b);
    }

    int main(int argc, char *argv[])
    {
        /*
    * 方法一:
    * 定义函数指针的规则
    * 1.把函数拿过来  int add(int a, int b) , 函数名add是一个地址
    * 2.把函数名挖空    int (*p)(int a,int b);
    */
    int(*padd)(int a, int b); //函数指针

    //3.赋值
    padd = add; 
    printf("%d\n", padd(11, 19));

    //方法2.直接初始化
    int(*psub)(int a, int b) = sub; //定义函数指针并初始化
    printf("%d\n", psub(19, 11));

            return 0;
    }
    展开全文
  • C语言中的void和void*的定义及用法

    万次阅读 多人点赞 2018-08-11 09:54:46
    实际上,如果把void 和int,char,double等类型放到一起理解的话,首先还是那句揭示本质的话:变量类型就是固定大小内存块的别名,那么void占用多大内存呢,编译器并没有定义void占用多大内存,所以对于...

    void

    void最常见的用法,就是在函数中限定函数的参数和返回值的 void draw(void); 表明函数draw没有参数也没有返回值,void在别的的地方的应用我也没见过;

    实际上,如果把void 和int,char,double等类型放到一起理解的话,首先还是那句揭示本质的话:变量类型就是固定大小内存块的别名,那么void占用多大内存呢,编译器并没有定义void占用多大内存,所以对于void var; 这样的定义,编译器自然是不允许的,在vs中的错误提示是:不允许使用不完整的类型。

    void*

    相比于void,void *就更加有意义一些。void *是一个指针类型,指针变量都占4byte内存(4byte=32 bit=2^32=4G,所以4byte就足以指向任何的内存地址了),所以对于void *p=NULL; 这样的定义,编译器可以为p分配内存,那么,如此定义的p有什么作用呢?

    int *a=NULL;

    p=a;

    double *b=NULL;

    p=b;

    char c[16]={0};

    p=c;

    void* 就像一张白纸,任何类型的指针都可以直接赋值给void *类型的指针;

    但是反过来

    int *a=NULL;

    a=p;//err

    a=(int *)p;//需要强制类型转换

    这样转过来转过去有何意义?

    典型应用

    void * memcpy(void *dest, const void *src, size_t len);
    void * memset ( void * buffer, int c, size_t num );

    memcpy和memset对外接收任何类型的指针,这样是合理并且必要的,因为这是内存操作函数,是对bit进行操作的,考虑数据类型是没有任何意义的(越触及本质,越抽象,也越有包容性)。

    int *a=NULL;

    a=(int *)malloc(sizeof(int));

    同样的,malloc函数只关注你要多大的内存,你需要把它怎么划分是你的事情,但是你需要显式的表明你是怎么划分的。这里语法要求是必须的,void *类型转为其他类型必须强制类型转换。

     

     

     

     

     

     

    展开全文
  • c语言函数指针和void *指向函数

    千次阅读 2018-08-22 14:52:12
    /* 首先要先理解两个类型的... 这个也是一个函数指针,函数参数有个int 来看看void*类型: void *fun; 这样定义看起来很抽象,有没有,对于没有用过空类型的同学来说, 这样定义确实会让人一脸...
    /*
    
    	首先要先理解两个类型的区别。
    
    	先说函数指针:
    		void (*fun)(void);    	这个就是一个函数指针了,函数的参数为空
    
    		void (*fun)(int);		这个也是一个函数指针,函数参数有个int
    	
    	来看看void*类型:
    		void *fun;				这样定义看起来很抽象,有没有,对于没有用过空类型的同学来说,
    								这样定义确实会让人一脸懵逼。
    								但是可千万别小看这个类型,这个类型可是C语言的精华所在啊,
    								因为它可以代表任意数据类型,没错是任意数据类型,例如:
    								int,float...这些基本数据类型就不用多说了,关键它还可以代表
    								结构体,联合体,枚举,函数。是不是很牛逼啊。
    
    	下面我主要介绍一下 函数指针 和 void指针指向函数
    
    */
    	void *fun;			//空指针
    	void (*fun_1)(void);//函数指针
    	void (*fun_2)(int);//函数指针
    
    	//-------------------------这里是空指针指向函数用法-------------------
    	printf("这里是空指针指向函数用法\n");
    	fun=test_func1;		//用空指针指向一个函数
    
    	/*
    		(unsigned int (*)(void))   这里是把这个空指针强制转换成函数指针
    	*/
    	(*  (unsigned int (*)(void))  fun)();	//运行该函数
    
    	fun=test_func2;		//用空指针指向一个函数
    
    	/*
    		(unsigned int (*)(void))   这里是把这个空指针强制转换成函数指针
    	*/
    	(*  (unsigned int (*)(int))  fun)(100);	//运行该函数
    
    	//-------------------------这里是函数指针指向函数用法-------------------
    	printf("这里是函数指针指向函数用法\n");
    	fun_1=test_func1;		//在这里,函数指针的类型必须和你指向函数的类型相同,类型相同主要针对参数
    
    	(*fun_1)();		//运行该函数
    
    	fun_2=test_func2;
    
    	(*fun_2)(100);		//运行该函数
    void test_func1()
    {
    	printf("函数1\n");
    }
    void test_func2(int v)
    {
    	printf("函数2\n");
    }

     

    展开全文
  • C语言中的void和void指针-void*

    千次阅读 2018-05-10 16:55:59
    void 关键字 ...void empty(int a); 当函数参数列表为空时,可以使用voidvoid empty(void); void指针的作用 void指针:void * 可以用其指代任何类型的指针。 但不能用void指针...
  • C语言定义函数输出数组的值

    千次阅读 2019-04-29 20:41:13
    #include <...void f(int * pArr, int length)//pArra&a[0] { int i; for (i=0;i<length;++i) { printf("%d\n", *(pArr+i));//a[i]==*(a+i) } } int main(void) { int a[5] = {1,2,3,4,5}; ...
  • 实例: #include <stdio.h> #include <stdlib.h>...void print(void * node) { printf("%d\n", *(int *)node); //加星号报错,不加不报错,但是结果不对。 //必须要转换成相应类型才能对其...
  • 1,typedef void fun(int)类型 ...定义函数 void fun(int a){ ptintf("%d = a\n",a);} 这是可以可以这样用,alias * a = fun; 调用 #include typedef void alias(int); int main(){ void fun
  • 51单片机C语言延时函数怎么定义和使用

    万次阅读 多人点赞 2019-01-06 17:38:04
    C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为...
  • void和int函数的区别

    千次阅读 多人点赞 2021-04-04 12:13:13
    当我们定义一个函数只是为了实现某功能时(比如输出某值),用void就可以了,比如: void Date::print() { cout<<year<<"/"<<month<<"/"<<day<<"-"<<IsLeapYear()<&...
  • C语言中的void 和void 指针类型

    万次阅读 2010-11-29 10:30:00
    C语言中的void 和void 指针类型C语言, void, void指针许多初学者对C中的void 和void 的指针类型不是很了解。因此常常在使用上出现一些错误,本文将告诉大家关于void 和void 指针类型的使用方法及技巧。 首先...
  • c语言函数指针的定义和使用

    千次阅读 2020-02-12 17:37:35
    1、定义函数返回值类型 (* 指针变量名) (函数参数列表); 例如:int (*func)(int,int); //类比:定义一个指针变量: int *p; 另外,还可以使用typedef来定义函数指针 例如: typedef void (*func) (void); //...
  • void定义函数int、double的区别

    万次阅读 多人点赞 2016-07-29 23:55:30
    前面加有void函数,不能返回任何数据,return语句不能使用,这类函数应该将所有应该实现的功能在本函数内全部实现。但是并不是不能与外部交换数据,仍然可以通过引用型参数传递数据,只是调用时不能直接接受...
  • C语言函数的参数列表为空和void的区别 C标准C++标准在main函数上是有区别的,所以我分别详细来介绍他们。 对于C语言:  C89标准的main()函数是可接受的,尽管现在建议是使用C99的标准。C99标准只定义了如下两...
  • #include #include #include ...void fun1(){ printf(" void fun , no return\n"); } void fun2(){ printf(" void fun , has return\n"); return; } void *fun(){ printf(" void pointer fun ,
  • C语言函数指针回调函数的详解

    万次阅读 多人点赞 2019-05-18 23:10:01
    函数指针:指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。...函数指针有两个用途:调用函数和函数...
  • 函数 void main 与 int main 的区别

    千次阅读 2016-06-05 20:55:48
    c语言中的void main int main 其返回值不同 标准的c语言要求main函数的返回值为int,该值是执行程序时,告知主调进程程序运行结果的一个渠道 标准的main函数格式为 int main(int argc,char*aggv[]); 及返回值...
  • C语言strcpy函数的使用

    万次阅读 多人点赞 2020-04-19 11:00:53
    strcpy简单使用: #include <stdio.h> #include <string.h> struct Student { int sid; char name[20];... int age;...int main(void) { struct Student st = {1000,"zhangsan",20};...
  • void ( signal(int , void()(int)) )(int)是什么意思 注释: signal 是一个函数声明 signal函数的第一个参数是int,第二个参数是函数指针 signal函数的返回类型为函数指针 signal函数的第二个参数...
  • C语言函数参数为空和void

    千次阅读 2016-03-03 10:04:38
    C语言函数声明对函数的检测最主要的标准是函数名,C语言函数参数列表中的参数名可以缺省   C语言当中参数列表中的数据类型也可以缺省,默认是int。   add()并不等价于add(void); add(void)明确...
  • 假如函数在调用它之前定义... 您可能感兴趣的文章:深入理解C++中public、protected及private用法C/C++函数调用的几种方式总结浅析C语言中堆栈的区别关于C语言中参数的传值问题浅谈C语言函数调用参数压栈的相关问题
  • c语言void和void*类型

    千次阅读 2019-04-24 13:23:30
    1、void的作用  c语言中,void为“不确定... 在C语言void 常常用于:对函数返回类型的限定函数参数限定   (1)对函数返回类型的限定:当函数不需要返回类型是必须用void 来限定返回类型,限定了函数的...
  • 哈喽,各位小伙伴们,在我们学习C语言的过程中经常会看到书中的main函数前带有int和void,就像下面这样: 上面这两种有什么区别呢?在C语言中,可以把函数分为有返回值函数和无返回值函数两种,其中函数为int型的就...
  • c语言函数定义与使用

    千次阅读 2015-03-01 12:00:06
    c语言中可以通过定义函数来实现代码的重复使用 编程时候并不是把所有代码都写到main中 函数定义 函数返回值 函数名( 参数) {  函数体 } //定义函数获取2个数的最大值 int getMax(int a,int b...
  • c语言中,void的意思是“无类型”,相应的“void *”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回参数的进行限定。c语言中,void的意思是“无类型”...
  • C语言位操作宏定义函数

    万次阅读 2021-06-18 15:48:54
    我们在写C语言时,经常需要用到位操作,但是每次自己使用逻辑运算符进行操作的时候,很费脑子,试试下面几个宏定义吧: #define GET_BIT(value,bit) ((value)&(1<<(bit))) //读取指定位 #define CPL_BIT...
  • C语言自定义函数的方法

    万次阅读 多人点赞 2019-04-13 21:44:53
    一、C语言之自定义函数的调用 1.声明一个自定义函数void fun(void);//函数的声明 也可在主函数之前编写自定义函数; 2.主函数里调用自定义函数int main(void) { fun();//调用fun函数; return 0; } 3.编写...
  • c语言malloc函数的用法意义

    万次阅读 多人点赞 2019-05-22 19:26:14
    当我们需要做一个成绩管理系统,人数可能为全校学生,也可能为一个班的学生,当我们开辟一个班的...malloc时动态内存分配函数,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址 mallo...
  • C语言函数的基本知识

    万次阅读 多人点赞 2018-12-02 18:09:04
    函数和指针这两大块,在C语言中占据着重要的位置,是C语言中的主体核心,所以它们的重要性也就不言而喻了。 那什么是函数呢? 1:函数C语言的模块,一块块的,有较强的独立性,可以相互调用,也就是说,你可以...
  • C语言system函数

    万次阅读 多人点赞 2018-01-04 10:53:44
    我们今天来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发出一个DOS命令 用 法: int system(char *...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 309,529
精华内容 123,811
关键字:

c语言定义函数void和int

c语言 订阅