C89:关键字

Posted k5bg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C89:关键字相关的知识,希望对你有一定的参考价值。

一.C语言关键字

1.C89关键字

一共32个关键字

修饰类型(8):auto-static-extern-register signed-unsigned const volatile

基本类型(7):void short-long char-int float-double

复合类型(4):typedef struct union enum

计算类型(1):sizeof

判断语句(7):if-else  switch-case -default goto-return

循环语句(5):for do-while break-continue

 

2.C99关键字

inline restrict _Bool _Complex _Imaginary

 

3.C11关键字

_Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic

 

二.C++关键字

1.C++98/03关键字

一个有63个关键字

修饰类型(8+1):auto-static-extern-register signed-unsigned const-mutable volatile

基本类型(7+4):void short-long chart-int double-float wchar_t bool true-false

复合类型(4):typedef enum struct-union

计算类型(1+1):sizeof typeid

判断语句(7):if-else goto switch-case-default return

循环语句(5):for do-while break-continue

异常语句(3):try-catch-throw

对象类型(11):this-class new-delete  public-protected-private virtual-friend-inline-operator

命名空间(6):using namespace export template  typename asm

类型转换(5):dynamic_cast static_case const_case reinterpret_caset explicit

 

2.C++11关键字

alignas alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local

 

三.C和C++的区别

C++是对C的增强,C++是强类型语言

 

1.类型检查更为严格

新增了两种新修饰类型:explicit mutable

新增了四种新类型:wchar_t bool true-false

新增了类型检查符:typeid

 

2.增加了面向对象和运算符重载的机制

新增了十一种新对象类型:new-delete this-class public-protected-private operator-virtual-friend-inline

 

3.增加了泛型编程和标准模板库命名空间

新增了六种新命名空间:using-export  namespace-template  typename asm

 

4.增加了异常处理

新增了三种新异常语句:try-catch-throw

 

四.C和C++的兼容

C的大部分代码都能在C++上运行,但是C++的大部分代码不能在C上运行

 

1.变量声明的位置

C中的变量声明和代码是分开的,必须在函数开始处声明

C++中,变量可以在任意处声明,只要保证先声明再使用的原则

 

2.struct结构体

在C中声明struct变量必须写成:struct mystruct a;

在C++中前面struct可以省略:mystruct a;

在C++中,struct结构体支持成员函数默认访问为public(),但是在C中不行(类的默认访问为private)

很少人会在结构体里面加类,顶多有一个构造函数

 

3.bool类型

在C++中有bool(或boolean类型),在C中没有布尔类型,只有数值类型

 

4.注释不同

在C中注释只有一种/*...*/

在C++中的注释包含两种/*...*/和//

 

5.强制数据类型转换

在C中的强制转换形式为:(类型)变量

在C++中还可以使用:类型(变量)

 

6.赋值

在C中的赋值只有一种=

在C++中还可以用(),比如int x(5)等于int x=5

 

7.函数

在C中函数没有默认参数值,不允许有同名的函数,未声明和定义函数之前调用函数是允许的

在C++中函数有参数默认值和函数重载,必须先声明原型或定义才能调用函数

注意:在C++中赋初始值必须从参数列表的右边开始赋值,从左边开始赋值将会出错

 

8.运算符&和const

在C中运算符&表示取地址,函数不能用const

在C++中运算符&还可以表示引用,可以用void a()const...

 

9.extern

在C中在其他模块共享一个全局变量不用加extern

在C++中在其他模块共享一个全局变量必须先用extern声明

 

10.void指针

在C中void指针可以赋给任何类型的指针

在C++中必须先进行强制数据类型转换再赋值

 

以上是关于C89:关键字的主要内容,如果未能解决你的问题,请参考以下文章

static 关键字是不是影响范围?

C零基础课程-08-数值型变量的定义与使用

C语言中的datatype是啥

以下程序在 C89 模式下编译时如何输出“C89”,在 C99 模式下编译时如何输出“C99”?

在C语言里标准函数存放在啥文件中?

使用 malloc (C89) 在 main() 之外初始化结构 [重复]