关键字又称为保留字,就是已被C语言本身使用,不能作其它用途使用的字。例如关键字不能用作变量名、函数名等标识符。由ISO标准定义的C语言关键字共32个:auto、double、int、struct、break、else、long、switch、case、enum、register、typedef、char、extern、return、union、const、float、short、unsigned、continue、for、signed、void、default、goto、sizeof、volatile、do、if、while、static、inline、restrict _Bool _Complex _Imaginary _Generic。
一、基本数据类型
    void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)
    char:字符型类型数据,属于整型数据的一种。(K&R时期引入)
    int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)
    float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
    double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
    _Bool:布尔型(C99标准新增)
    _Complex:复数的基本类型(C99标准新增)
    _Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)
    _Generic:提供重载的接口入口(C11标准新增)
二、类型修饰关键字
    short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)
    long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)
    long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)
    signed:修饰整型数据,有符号数据类型。(C89标准新增)
    unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)
    restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)
三、复杂类型关键字
    struct:结构体声明。(K&R时期引入)
    union:联合体声明。(K&R时期引入)
    enum:枚举声明。(C89标准新增)
    typedef:声明类型别名。(K&R时期引入)
    sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)
    inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)
四、存储级别关键字
    auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配。与static相反。当变量未指定时默认为auto。(K&R时期引入)
    static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。(K&R时期引入)
    register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。(K&R时期引入)
    extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。(K&R时期引入)
    const:指定变量不可被当前线程改变(但有可能被系统或其他线程改变)。(C89标准新增)
    volatile:指定变量的值有可能会被系统或其他线程改变,强制编译器每次从内存中取得该变量的值,阻止编译器把该变量优化成寄存器变量。(C89标准新增)
五、跳转结构
    return:用在函数体中,返回特定值(如果是void类型,则不返回函数值)。(K&R时期引入)
    continue:结束当前循环,开始下一轮循环。(K&R时期引入)
    break:跳出当前循环或switch结构。(K&R时期引入)
    goto:无条件跳转语句。(K&R时期引入)
六、分支结构
    if:条件语句,后面不需要放分号。(K&R时期引入)
    else:条件语句否定分支(与if连用)。(K&R时期引入)
    switch:开关语句(多重分支语句)。(K&R时期引入)
    case:开关语句中的分支标记,与switch连用。(K&R时期引入)
    default:开关语句中的“其他”分支,可选。(K&R时期引入)
七、编译
   #define 预编译宏
    #if 表达式 #else if 表达式 #else #endif 条件编译
    #ifdef 宏 #else #endif 条件编译
    #ifndef 宏 #else #endif 条件编译与条件编译

C/C++语言简介之关键字的更多相关文章

  1. JavaScript学习01 语言简介、基本使用和变量声明

    JavaScript语言简介.基本使用和变量声明 JavaScript是网景(Netscape)公司开发的一种基于客户端浏览器.面向对象.事件驱动式的网页脚本语言. JavaScript的前身叫Liv ...

  2. 计算机程序和C++语言简介

    C++程序设计 第一章 计算机程序和C++语言简介 1.计算机是一台能够存储并处理数据的电子设备,包含硬件和软件两部分. 2.计算机硬件由: 1)中央处理单元(Central Processing U ...

  3. GO 语言简介(网摘)

    GO 语言简介 原文出处:[陈皓 coolshell] Hello World 文件名 HELLO.GO package main //声明本文件的package名 import "fmt& ...

  4. Go 语言简介(下)— 特性

    希望你看到这篇文章的时候还是在公交车和地铁上正在上下班的时间,我希望我的这篇文章可以让你利用这段时间了解一门语言.当然,希望你不会因为看我的文章而错过站.呵呵. 如果你还不了解Go语言的语法,还请你移 ...

  5. WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍

    这篇文章主要介绍了WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍,WQL是指Windows管理规范查询语言,需要的朋友可以参考下 WQL就是WMI中的查询语言,WQL的全称是W ...

  6. 01. Go 语言简介

    Go语言简介 引用原文地址:http://m.biancheng.net/golang/ Go语言也称 Golang,兼具效率.性能.安全.健壮等特性.这套Go语言教程(Golang教程)通俗易懂,深 ...

  7. 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式

    目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...

  8. D语言简介

    D语言,一种通用计算机程序语言,威力强大.功能丰富,支持多种编程范式,例如面向对象.[1]  D语言最初由Digital Mars公司就职的Walter Bright于2001年发布,意图改进C++语 ...

  9. Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口

    目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...

随机推荐

  1. CCF系列之窗口(201403-2)

    试题编号: 201403-2时间限制: 1.0s 内存限制: 256.0MB 问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口 ...

  2. 强大的Cmder

    why 漂亮,包装并美化了各个shell 带task功能,能记忆,能执行脚本 配合win10的bash,能实现类似xshell的功能 注意点 需要注意的一点,Cmder来源于另外一个项目ConEmu, ...

  3. Git-远程仓库的使用

    Git修改远程仓库地址 1.修改命令 git remote set-url origin [url] 例如:$ git remote set-url origin gitlab@gitlab.chum ...

  4. .NET: 谈谈共享项目 (Shared Project) 的使用

    从 Visual Studio 2015 起,共享项目 (Shared Project) 作为新的一种项目类型被添加到项目模板列表中,它的主要目的是使多个不同类型的项目之间可以共享代码或资源.相比它的 ...

  5. java里程碑之泛型--泛型方法

    前面我已经介绍过了,我们可以在定义类和接口的时候使用类型形参,在该类的方法定义中,成员变量定义中,这些类型形参都可以被当成普通类型来使用.但是如果我们在定义类和接口的时候没有使用类型形参,但是在定义方 ...

  6. Servlet--j2e中文乱码解决

    我们在写项目的时候经常会传递一些中文参数,但是j2e默认使用ISO-8859-1来编码和解码,所以很容易出现中文乱码问题.这里我做一个统一的整理,其实这里的中文乱码问题和上一篇的路径问题都是j2e经常 ...

  7. Navicat for MySQL导出表结构脚本的方法

    使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法. 1.右键Navicat中的数据库→数据传输(Data Transfer). 2.左边数据库对象(Database Object ...

  8. Jmeter之性能测试插件PerfMon Metrics Collector监听器,实时监听服务器资源(十四)

    Servers Performance Monitoring Introduction During a load test, it is important to know the health o ...

  9. Oracle-Linux安装配置python3.6环境

    最近公司更换了linux系统的版本,从Ubuntu改为了oracle linux,相关的Python环境也要重新配置,记录一下基本配置的过程. 相关环境 系统:oracle linux7.3 系统自带 ...

  10. Android util.Log 工具类

    Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志. Log.v().用于打印那些最为琐碎的.意义最小的日志信息.对应级别verbos ...