当前位置:首页生活

c99是什么意思(c99和c11的区别)

2022-05-19 22:25:302.11万

c99是什么意思(c99和c11的区别)

c99是ISO/IEC9899:1999的非正式名称,在1999年推出,被ANSI于2000年3月采用。它是C编程语言标准的过去版本。它扩展了以前的版本(C90),增加了语言和标准库的新功能,并帮助实现更好地利用可用的计算机硬件,如IEEE754-1985浮点运算和编译器技术,最主要的增强在数值处理上。

keil mdk 中c99模式是什么意思

utility是功能的意思,utilities是utility的复数形式。也是功能的意思。在stm32的keil开发环境中,这个选项主要是检测和设置仿真器的参数。

c语言是什么意思?

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

最新的C语言标准是C18。

扩展资料:

通过对C语言进行研究分析,总结出其主要特点如下:

(1)简洁的语言

C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

(2)具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

(3)丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

(4)丰富的运算符

C语言包含34个运算符,它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

(5)可对物理地址进行直接操作

C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。

(6)代码具有较好的可移植性

C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致;

不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。

(7)可生成高质量、目标代码执行效率高的程序

与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。

C89标准和C99标准C11标准的区别

C99相对C89的区别:

1、增加restrict指针

C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只

有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函

数所分配的内存变量。restrict数据类型不改变程序的语义。

如果某个函数定义了两个restrict指针变元,编译程序就假定它们指向两个不同的对象,memcpy()

函数就是restrict指针的一个典型应用示例。C89中memcpy()函数原型如下:

代码:

void *memcpy (void *s1, const void *s2, size_t size);  如果s1和s2所指向的对象重叠,

其操作就是未定义的。memcpy()函数只能用于不重叠的对象。C99中memcpy()函数原型如下:

代码:

void *memcpy(void *restrict s1, const void *restrict s2,size_t size);  通过使用restrict

修饰s1和s2 变元,可确保它们在该原型中指向不同的对象。

2、inline(内联)关键字

内联函数除了保持结构化和函数式的定义方式外,还能使程序员写出高效率的代码。函数的每次调用与

返回都会消耗相当大的系统资源,尤其是当函数调用发生在重复次数很多的循环语句中时。一般情况下,当发

生一次函数调用时,变元需要进栈,各种寄存器内存需要保存。当函数返回时,寄存器的内容需要恢复。如果该

函数在代码内进行联机扩展,当代码执行时,这些保存和恢复操作旅游活动会再发生,而且函数调用的执

行速度也会大大加快。函数的联机扩展会产生较长的代码,所以只应该内联对应用程序性能有显著影响的

函数以及长度较短的函数。

c11与c99的区别,会了c99后怎样学c11

C11与C99 有99.5%是相同的。C99不被新标准所支持的大概只有gets() 这个函数而已。C11的新特性只有在一些特定情形下才需要用到(比如安全计算、并行计算、科学计算等),距离广泛接受还有待时日,更别说普遍应用了。

所以,学会C99基本功扎实了,C11也没问题。

最近更新