精华内容
下载资源
问答
  • void定义函数与int、double的区别

    万次阅读 多人点赞 2016-07-29 23:55:30
    前面加有void函数,不能返回任何数据,return语句不能使用,这类函数应该将所有应该实现的功能在本函数内全部实现。但是并不是不能与外部交换数据,仍然可以通过引用型参数传递数据,只是调用时不能直接接受...

    前面加有void 的函数,不能返回任何数据,return语句不能使用,这类函数应该将所有应该实现的功能在本函数内全部实现。但是并不是不能与外部交换数据,仍然可以通过引用型参数传递数据,只是调用时不能直接接受返回值,因为就没有返回值。
    前面有int的函数,返回值是整型数,可能是结果是整数的数,也可能是运行状态,成功或失败的标识,函数调用时可以直接利用返回信息,实现一些功能。

    至于double或者其他返回值类型定义的方法,道理是一样样的

    展开全文
  • //函数的返回值为void必须在此定义,返回值是整形或者其他基本类型不需要在此定义 #include #include #include char * test3(); //函数的返回值指针也必须在此定义void test2(void); //函数的返回

    有时遇到函数返回值为空和函数返回值为指针的情况下,需要在前面定义该函数
    //函数的返回值为指针也必须在此定义,
    //函数的返回值为void必须在此定义,返回值是整形或者其他基本类型不需要在此定义

    函数功能:把格式化的数据写入某个字符串
    函数原型:int sprintf( char *buffer, const char *format [, argument] … );
    返回值:字符串长度(strlen)
    
    #include 
       
        
    
    void main(){
    
    char* who = "I";
    char* whom = "CSDN";
    char s[30];
    sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "  这字符串写到s中
    printf("%s\n",s);
    sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
    printf("%s\n",s);
    sprintf(s,"hejianghzou");
    printf("%s\n",s);
    
    
    }
       


    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    char * test3();    //函数的返回值为指针也必须在此定义,
    void test2(void);	//函数的返回值为void必须在此定义,返回值是整形或者其他基本类型不需要在此定义
    					
    void main(void)
    {
    	char *cp;
    //	const int two = 2;
    	test2();
    	cp = test3();
    	printf(cp);
    
    }
     void test2(void)
    {
    	int i = 0;
    	char *available_resources[] = {"afbhd","gbjaf","dajgb","kcdbha"};
    	for(i;i<4;i++){
    		printf("\n ");
    		printf(available_resources[i]);
    		printf("\n");
    	}
    
    }
    char *test3()
    {
    	
    	char *tempbuffer ;
    	char buffer[120] ;
    	tempbuffer = (char*)malloc(100*sizeof(char));
    	memcpy(tempbuffer,"That'd be in the data segment ,bob",100);
    	printf(tempbuffer);
    	strcpy(buffer,(char*)"Game's over");
    	return buffer;
    }


    展开全文
  • 在C和C++中,不接收任何参数也不返回任何信息的函数原型void foo...main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的.对于”void main(void);”这种错误形式,虽然在一些编译器中可以通过编译(如vc6)

    在C和C++中,不接收任何参数也不返回任何信息的函数原型为”void foo(void);”. 可能正是由于这个原因,很多人误认为如果程序不需要返回值时,可以把main函数定义为: void main(void).

    然而这是错误的!

    main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的.

    对于”void main(void);”这种错误形式,虽然在一些编译器中可以通过编译(如vc6),但并非所有的编译器都支持,因为标准中从来没有定义过这种形式. g++3.2编译器中,如果返回值类型不是int类型,根本不会通过编译;则gcc3.2 编译器则会发出警告.

    所以,如果想让你的程序有很好的可移植性,请一定要使用int main.

    main函数几种形式如下:
    C语言中:
    int main(void);
    int main(int argc,char* argv[]);
    或者 int main(int argc, char** argv);
    C++语言中:
    int main();
    int main(int argc,char* argv[]);

    在main函数的返回值必须是int类型的前提下,如果main函数的最后没有写return语句,会如何?

    C99和C++98规定编译器要自动在生成的目标文件中加入”return 0;”, 表示程序正常退出.写程序好的习惯是自己在main函数的最后加上return语句,因为并不是所有的编译器都支持这一特性.
    例如:
    vc6编译器不会在目标文件中自动添加return 0语句.
    gcc3.2(Linux下的C编译器)支持这个特性.
    g++3.2(Linux下的C++编译器)支持这个特性.

    总结:
    综上所述,由于void main类型不在规定中,而且不同的编译器对main函数的返回类型的处理不一样,以及不同编译器不一定会在目标文件中自动加入return语句这3点,为了让我们的程序有很好的可移植性,写main函数时需要按照以下形式:
    int main()
    {
    return 0;
    }

    展开全文
  • void *作为函数形参类型

    千次阅读 2020-04-01 10:49:55
    编译报错,修改如下: 查看库函数中memcpy()函数:到安装位置去找。 IAR forarm 没有给memcpy函数的源代码 ...2.void *作为函数形参类型可以传递任何类型的指针参数,调用时不需要再强制转换。 ...

    编译报错,修改如下:

    查看库函数中memcpy()函数:到安装位置去找。

    IAR for arm 没有给memcpy函数的源代码

    IAR for 430 给出了

     

    get:

    1.查看库的方法,看库中的函数是如何写的。学会看库

    2.void *作为函数形参类型可以传递任何类型的指针参数,调用时不需要再强制转换。

    展开全文
  • 函数指针的强制类型转换与void指针

    万次阅读 2018-06-21 11:36:28
    驱动库的作者为了使DVB芯片兼容尽可能多的tuner芯片,在定义tuner_init函数指针时,参数中的handle定义为void* handle)。这样的话,这个handle既可以接收tuner1_handle ,也可以接收tuner2_handle。同时函数指针...
  • C++基础---无返回值函数(void函数)

    万次阅读 多人点赞 2015-09-04 16:43:49
    1.1 void函数定义 不带返回值的return语句只能用于返回类型为void的函数。在返回类型为void的函数中,return返回语句不是必需的,隐式的return发生在函数的最后一个语句完成时。 一般情况下,返回类型是void的...
  • typedef定义函数类型

    万次阅读 2013-09-12 13:22:02
    最近在看posix实时信号时,遇到一处函数是如此定义的: typedef void sigfunc_rt(int, siginfo_t *, void *)...在我常规理解里,一般定义一个函数类型都是这样定义的: typedef void (*sighandler_t)(int); si
  • typedef 定义函数类型

    千次阅读 2012-06-21 11:27:23
    最近在看posix实时信号时,遇到一处函数是如此定义的: ...typedef void sigfunc_rt(int,...在我常规理解里,一般定义一个函数类型都是这样定义的: 1 typedef void (*sighandler_t)(i
  • ts定义返回函数类型

    万次阅读 2019-06-30 10:22:45
    一般函数声明: //第一种形式 let c: Function; c = function(): void { console.log('It work'); } //第二种形式 function test(): Function{ return function():void{ console.log('it work'); ...
  • void类型void指针

    千次阅读 2016-04-21 18:18:51
    void类型void指针 基于前面的一篇博客模拟实现 memcpy 和 memmove 时用到的 ... 1.void 相信大家不会陌生,经常定义无返回值的函数是用 void 定义,表示函数无需返回值;   void fun(void) {
  • voidvoid指针含义的深刻解析

    千次阅读 2015-03-17 12:33:51
    void即“无类型”,void *则“无类型指针”,可以指向任何数据类型void指针使用规范 ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如: int * pint; void *pvoid; pvoid ...
  • c语言的函数指针和void *指向函数

    千次阅读 2018-08-22 14:52:12
    这个就是一个函数指针了,函数的参数void (*fun)(int); 这个也是一个函数指针,函数参数有个int 来看看void*类型void *fun; 这样定义看起来很抽象,有没有,对于没有用过空类型的同学来说, ...
  • 定义一个函数指针类型

    千次阅读 2014-06-26 15:46:48
    1、定义函数指针类型 // 定义一个原型int Fun( int a );的函数指针 typedef int (*PTRFUN) ( int aPara ); 2、函数指针变量的定义 PTRFUN pFun; // pFun 为函数指针变量名 int (*pFun2) ( int a )...
  • 函数参数为void和没有参数的区别

    千次阅读 2013-03-20 17:47:48
    众所周知,如果函数被声明和定义为void f(void);则说明该函数在调用时不能传入任何参数。而如果函数被声明和定义为void f();则说明该函数在调用时候可以传入任意参数。下面做实验: //t1.c void f(); //该函数将...
  • C语言中,函数定义时的返回值类型

    千次阅读 2019-12-24 16:01:34
    目录一个题目解析 一个题目 下列函数返回值的类型是()。...C语言中,定义一个函数的具体语法格式: 返回值类型 函数名(参数类型 参数名1, 参数类型 参数名2, …, 参数类型 参数名n) { 执行语句 …… re...
  • 定义函数指针类型

    千次阅读 2011-08-31 10:05:11
    用typedef定义函数指针的形式如下:  typedef 返回类型(*新类型)(参数表) 比如先声明一个函数: int FactorialFun(int a) //求a的阶乘 {  int Fact=1;  int i;  for(i=1;i  Fact=Fa
  • VS2012(据说从VS2008就这样了)自定义消息时,如果消息返回类型为void,会报下面错误: 无法从“LRESULT (__thiscall 转换“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM) 这是因为VS2012要求返回类型不能为void...
  • 函数定义一般形式

    千次阅读 2019-07-23 13:46:02
    函数定义的一般形式 ...在很多情况下都不要求无参函数有返回值,此时函数类型说明符可以写为void函数名是由用户定义的标识符,函数名后面有一个空括号,其中无参数,但括号不可少。{}中的内容称为函数体。定义一...
  • C语言函数参数空和void

    千次阅读 2016-03-03 10:04:38
    C语言中函数声明对函数的检测最主要的标准是函数名,... add(void)明确指明add函数不接收任何参数,若对传参会报错,提示是error; 而add()表示接收参数,他的类型是int,只是他是一种没有意义的接收,并不会用
  • typedef void(*T)(void *)的含义

    千次阅读 2018-10-17 23:45:00
    首先写成 void(*T)() 可以看出 T是一个指针,是一个指向返回值为void ,参数空的类型函数指针 在加上(void *)  void(*T)(void *) 就变成了一个指向 返回值为void,参数为void *类型的指针 在加上上typedef...
  • 如果函数无参数,那么应声明参数 void  2010-07-21 16:35:39| 分类: 语言】c语言深度|字号 订阅 如果函数无参数,那么应声明参数 void 在 C++语言中声明一个这样的函数:  ...
  • C++ 析构函数 为何一般定义为函数

    千次阅读 2014-04-07 16:53:49
    C++ 析构函数 为何一般定义为函数,例子:
  • 今天在进行多线程编程的时候遇到了一个编译问题:error: argument of ... 后来发现将线程处理函数声明static类型,问题得解。  其实这个原因很简单,当把线程函数封装在类中,this指针会作为默认的参数被传进
  • main函数类型定义

    千次阅读 2017-04-27 18:55:46
    最近在论坛上看到有不少网友的程序中,main函数都写成void main(),而不是int main()。那么,到底哪个是正确的,或至少是推荐使用的呢?这篇文章本来是自己想写的,但有些概念不是很清楚,于是在网上搜索了一下...
  • 在C/C++ 中,不返回任何信息的函数原型void function(…);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义void main() 。然而这种做法是错误的! C++Primer第五版中文版...
  • void pyramid(int n){ int i, j, space; for(i=1; i <= n; i++) { space = n - i; for(j=0; j < space; j++) putchar(' '); for(j=0; j < i; j++) printf("%-2d", i); putcha...
  • 函数 2 之虚函数定义

    千次阅读 2019-01-24 23:20:34
    1、虚函数定义 ...虚函数定义是在基类中进行的,它是在基类中在那些需要定义为函数的成员函数的声明中冠以关键字 virtual 。定义函数的方法如下: virtual 函数类型 函数名(形参表){ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,467,132
精华内容 586,852
关键字:

定义为void类型的函数其含义是