C++到C的转换
最近要涉及STM32的编程,对于会C++不会C的我,来说是一个挑战也是一个机遇。
由于C++与C之间存在互通性,所以理论上只要能弄清它们之间的差异就能快速的进行“迁移学习”。
1、从C++与C标准的入口函数看
1.1、C++标准入口函数
#include <iostream>
#include "myfile.h"
using namespace std;
int main()
{
int n;
while(cin >> n,n != 0)
{
cout << "Hello World!" << endl;
}
return 0;
}
这是一个简单的C++入口main函数,在控制台输入不为0的数值时输出Hello World!字符。
1.2、C标准入口函数
#include <stdio.h>
int main()
{
int n;
while(scanf("%d",&n),n != 0)
{
printf("Hello World!\n");
}
return 0;
}
这是一个简单的C入口main函数,在控制台输入不为0的数值时输出Hello World!字符。
- 对比两个之间的差异,发现头文件的引用方式上,C都含后缀.h而C++引用系统提供的头文件不需要,不区分是否自定义。
- 控制台输入库函数C为printf,控制台输出库函数C为scanf。
- C无需声明使用命名空间。
2、从变量的定义上看
for (int i = 0; i < 100; i++)
{
cout << i << endl;
}
int i, j;
for (i = 0; i < 100; i++)
{
printf("%d\n", i);
}
- 对比两个之间的差异,发现C语言变量的定义必须放在代码块的首部。
总结
- 从代码编写上C语言与C++并没有太大的差异
- C语言首要考虑的是怎样通过一个进程,对魂晶条件运算处理得到输出
- C语言变量定义需在代码段首部
- C编译器允许一个函数在声明前调用它
- C可以用一个普通指针指向一个常量,C++会出现warning
- C中可void指针可以直接赋给其他类型指针,C++需强转
- C中'a'被当做int型,C++当做char型
- 在C中定义结构体必须使用'struct'关键字,C++中可以省略,C++中局部变量会覆盖同名全局变量,C中不会
- C中不直接支持支持布尔型,返回的都时int型,而C++则返回bool型。所以sizeof(1==1)在C中是sizeof(int),在C++中是sizeof(bool),C输出4,C++输出1
good
555
怎么可以联系到你呢,有些事情请求帮助,谢谢