01、C语言会被淘汰吗

60 阅读2分钟

1、计算机的工作原理

首先,我们来了解下计算机的工作原理,大家有没有想过,当我们在打游戏或者看照片时,屏幕上显示的图像是怎么生成的呢?

显示屏实际是由许多像素点组成的,每一个像素点可以看作是一个灯泡,CPU通过向这些灯泡发送101010这样的数据来控制它的亮灭,从而来显示不同的图像。而这些101010的数据呢,我们可以将它理解为机器语言,是计算机唯一能够识别的语言,但是现实中,我们几乎不会直接编写开发机器语言,而需要借助其他语言工具来间接生成。

image-20250818115731327.png

目前我们能够使用的编程语言有很多种,包括C、Python、Java、C++、C#等等。当我们选定好一种语言,在通过IDE工具编写并编译后,最终可以生成101010的机器语言。

2、机器语言是如何生成的

  • 是由 **编程语言+IDE工具(编辑器&编译器)**生成的

image-20250818120546906.png

上图中的就是用C语言编写的,有问可能会问,这么多编程语言,为什么要选择C语言呢?这是因为C语言是应用最为广泛,影响最为深远的编程语言。

3、C语言的历史

image-20250818120721530.png

上图中演示了 C89 标准和 C99标准在定义变量时的区别

C89标准

在keil中取消勾选【C99 mode】即为C89标准

image-20250818121502124.png

然后编写如下代码

int main(void)
{
    int a = 0x12345678;
    printf("&a is 0x%p \n", &a);
    char *p;      //该变量没有定义在函数最前面
    p = (char *)&a;
    printf("p is 0x%p, *p is 0x%x \n", p, *p);
    p++;
    printf("p is 0x%p, *p is 0x%x \n", p, *p);
    p++;
    printf("p is 0x%p, *p is 0x%x \n", p, *p);
    p++;
    printf("p is 0x%p, *p is 0x%x \n", p, *p);
    return 0;
}

编译程序,会报错

image-20250818121718589.png

C99标准

在keil中勾选【C99 mode】即为C99标准

image-20250818121817275.png

同样编译上面的程序代码,就不会报错

image-20250818121925237.png

4、C语言在日常生活中常见吗

C语言真是无处不在,家里面大到电冰箱,小到智能手表,这些智能硬件都有C语言的身影。

image-20250818122119280.png

5、C语言的特点

  • C语言开发的程序紧凑、高效;C语言的特点决定它有着不可取代的地位

image-20250818122415845.png

从上图看,很多底层系统都依赖于C语言开发,C语言在软件系统的中的位置,是其他语言不可替代的,所以C语言永远不会过时。

6、如何成为嵌入式开发高手

image-20250818123021636.png