C&C++在函数使用上的差异
来源:互联网 发布:网络建设 ppt 编辑:程序博客网 时间:2024/06/04 01:00
C&C++在函数使用上的差异
Rains 2016/4/16 11:22:18
以下测试的GCC编译器是使用ubuntu14.0
VC编译器使用VC++6.0
程序
#include<stdio.h>int a(){ printf("I am a.\n");}int b(void){ printf("I am b.\n");}c(){ printf("I am c \n"); return 0;}d(void){ printf("I am d\n"); return 1.1;}void main(){ a(1,2,3,65555555); b(); //b(1); //b(1,2); c(); d(); printf("return c = %d\n",c()); printf("return c = %d\n",d());}
1、在GCC编译器下
1.1.测试C语言函数
当b(); 替换成b(1);后如下图
结论小结:(1)函数可以不带类型,则默认为返回int类型(2)f() 表示为可以带任意参数,任意个数,fun(void) 表示不能带参数(3)主函数可以为void(测试过程中注意更改内容后要保存后再编译)
1.2测试C++函数
1.函数相同
2.无参数函数设置成int型
3.更改主函数为int 但是不添加return 更改a();调用为无参数类型 编译通过
结论小结:1、c++函数不支持无类型声明的函数,必须显式声明类型2、a();a(void);都不能带参数3、主函数不能为void类型问题指明函数类型,但是不说明返回值,int char下返回8 原因?
2、在vc++6下
2.1测试c函数
1、vc6下一次编译通过2、更改b();为b(1); 编译通过小结:(1)函数可以不带类型,则默认为返回int类型(2)f() 表示为可以带任意参数,任意个数,fun(void)与f()相同(3)主函数可以为void(测试过程中注意更改内容后要保存后再编译)
2.2测试c++
1、一次不通过warning C4508: 'c' : function should return a value; 'void' return type assumedwarning C4508: 'd' : function should return a value; 'void' return type assumederror C2660: 'a' : function does not take 4 parameters2、注释掉不带类型的c(); d();error C2660: 'a' : function does not take 4 parameters3、a();调用不带参数error C4716: 'a' : must return a valueerror C4716: 'b' : must return a value4、在int a(); 后添加返回值 运行成功小结:1、C++语言不支持无类型,或者非void但无返回值的函数2、f(); f(void); 都不支持传参3、主函数可以为void
总结GCC
C语言(1)函数可以不带类型,则默认为返回int类型(2)f() 表示为可以带任意参数,任意个数,fun(void) 表示不能带参数(3)主函数可以为voidC++1、c++函数不支持无类型声明的函数,必须显式声明类型2、a();a(void);都不能带参数3、主函数不能为void类型
总结VC6
C语言(1)函数可以不带类型,则默认为返回int类型(2)f() 表示为可以带任意参数,任意个数,fun(void)与f()相同(3)主函数可以为voidC++1、C++语言不支持无类型,或者非void但无返回值的函数2、f(); f(void); 都不支持传参3、主函数可以为void
问题?
指明函数类型,但是不说明返回值,int char下返回8 原因?
0 0
- C&C++在函数使用上的差异
- 关于C生成的汇编与C++生成的汇编在函数名称上的差异
- C和C++在效率问题上有哪些差异
- C++、Java和C#语言在处理“虚拟私有方法”上的差异
- C++、Java和C#语言在处理“虚拟私有方法”上的差异
- C++、Java和C#语言在处理“虚拟私有方法”上的差异
- POCO C++ 在IOS上的使用
- 空参数列表的函数在C和C++的差异
- linux内核使用的GNU C & 标准C的差异
- 如何解决标准C库的函数在vs上使用时出现的警告
- delphi和c在函数指针上的比较
- 在12C上创建wm_concat函数
- Android上,使用JNI调用C的函数,hellojni
- Fortran 和 C 的差异
- C标准之间的差异
- 在ARM平台上的C使用#pragma arm section
- json-c-0.9 在linux上编译使用的方法
- Protocol Buffers在Objective-C上的使用
- Linux软件安装
- SQL Server 存储过程
- Android使用AttributeSet自定义控件的方法
- 仿知乎客户端的白天黑夜主题切换
- CTS
- C&C++在函数使用上的差异
- OpenCV中IplImage与Mat代码风格比较
- rgw中的数据模型
- erlang基础
- 自定义View-3-重写onLayout
- nyoj 195 飞翔
- 块元素和行内元素(内联元素)
- Snort学习笔记
- 神经网络 neural network