在c语言中函数类型是由 在c语言中函数类型是由什么组成

C语言所有函数都是由函数说明和什么组成【在c语言中函数类型是由 在c语言中函数类型是由什么组成】C语言所有函数都是由函数说明和主函数main()组成 。
函数声明为编译器提供在c语言中函数类型是由了有用的信息,编译器在翻译代码的过程中,只有见到函数原型(这里即可以是声明也可以是定义)之后才知道这个函数的名字、参数类型和返回值,这样碰到函数调用时才知道怎么生成相应的指令 。
所以函数原型必须出现在函数调用之前,这也是遵循“先声明后使用”的原则 。注意上面说的函数原型是包括函数声明和定义两种形式的 。另外还有一种特殊情况,就是隐式声明 。隐式声明的函数返回值类型都是int 。
C语言:
C语言是一门通用计算机编程语言 , 应用广泛 。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言 。
尽管C语言提供在c语言中函数类型是由了许多低级处理的功能 , 但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台 。
以上内容参考:百度百科--C语音
C语言规定,函数返回值的类型由什么决定?c语言规定,函数返回值的类型是由函数首部定义的类型决定 。函数返回值应与首部定义的类型一致 , 如若不一致,则自动将返回值强制转换为函数首部定义的类型 。没有定义类型时默认为int型 。
也就是说你的函数是什么类型 , 返回值就是什么类型 。
比如:
函数定义 int fun(int a,char b)
返回值就是整型
函数定义 int *fun(int a)
返回值就是基类型为整型的指针
函数定义 void fun(int a)
无返回值
扩展资料
函数可以有返回值,只要 return 就可以给出一个 , 不过常常不用它,有两个原因:
1、C/C++里返回值是复制出去的 , 而对于大的对象,复制的代价很高;
2、有些对象是不能复制的,至少编译器不知道怎么复制,比如数组 。
于是有了下面这样的函数:
bool GetObj(ObjType obj);
bool Encode(const char* src, char* dest);
用一个参数来代替返回值,而返回值只是指示函数执行是否成功 。
返回一个大对象是困难的,但这个困难存在于 C 程序中,而不是 C++ 程序中 。C 函数里较少通过返回一个指针来返回对象,因为:
1、如果指针指向栈变量,毫无疑问,要么不用这个返回值,要么是一个错误;
2、如果指针指向堆变量,需要用这个函数的程序员会好好的看文档且足够细心会调用 free,要么就是内存泄漏;
3、如果指针指向 static 变量,那么用这个函数的程序员牢牢记住“下次调用这个函数以后,上次的返回值也会跟着变” 。
在C++里直接返回裸指针的话,情况并不会有什么起色,不过 C++ 有智能指针的,通常它们指向堆变量,占用的空间和裸指针一样大 。考虑前面第一个函数,写成:
std::auto_ptrObjType GetObj();
返回值如果不要 , 作为临时变量,会立即被析构,返回的对象被释放;如果需要,就得赋值给另一个智能指针 。总之不用程序员记得,编译器会保证这个对象的释放 。
考虑第二个函数,稍微有一点麻烦,因为 auto_ptr 是不能用来持有数组的,不过,在C++的世界里,std::string 几乎总是比 char* 好用:
std::auto_ptrstd::string Encode(const char* src);

推荐阅读