诗和远方

C 语言编译器

C语言

C 语言程序需要通过编译器,编译生成二进制指令,才能在我们的电脑上运行。

不同编译器,甚至对 C 标准的支持也不一样。有的编译器只支持 ANSI C,这是目前默认的 C 标准。有的编译器可以支持 C99,或者支持 C99 标准的部分特性。

不同编译器,出于开发环境、硬件平台、性能优化的需要,除了支持 C 标准外,还会自己做一些扩展。


51单片机上用 C 语言开发程序,C 编译器会对 C 语言标准作很多扩展。比如增加各种关键字:

data:RAM 的低128B空间,单周期直接寻址;

code:表示程序存储区;

bit:位变量,常用来定义单片机的 P0~P3 管脚;

sbit:特殊功能位变量;

sfr:特殊功能寄存器;

reentrant:重入函数声明。


同样的道理,GCC 编译器,也对 C 标准做了很多扩展:零长度数组、语句表达式、内建函数、__attribute__特殊属性声明、标号元素、case 范围…

int a[0];

C 标准目前不支持零长度数组,只能使用 GCC 编译器才能正确编译。 VC++ 6.0编译器编译可能就通不过,因为微软的 C++ 编译器不支持这个特性。

Related
C 语言编译器2019年07月03日
C 语言标准2019年07月03日
C语言预处理器指令2019年06月20日
为什么include .h文件而不是include .c文件?2019年06月20日
#ifndef, #define2019年06月20日
C语言宏定义和宏定义函数2019年06月18日

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2016
  • 页面总数:1
  • 分类总数:17
  • 标签总数:518
  • 评论总数:0
  • 浏览总数:592287
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML