快速从C++转C语言学习笔记

分享 2021-03-04

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

本文由 白间 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

3 条评论

  1. 柱哥哥
    柱哥哥

    good

  2. 1
    1

    555

  3. k
    k

    怎么可以联系到你呢,有些事情请求帮助,谢谢

添加新评论

0:00