关键字又称为保留字,就是已被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. JXLS使用方法(文件上传读取)xlsx文件读取

    1.官方文档:http://jxls.sourceforge.net/reference/reader.html 2.demo git地址:https://bitbucket.org/leonate/ ...

  2. 关于win10企业版1607累积更新(KB4013429)安装失败后,个人的解决办法

    最近连续一个多星期更新(1607-KB4013429)失败,更抓狂的是windows不厌其烦的,不断下载,不断更新,导致每天打开电脑都要等个十几分钟,看来不解决是不行了. 网上一查,有各种解决版本 1 ...

  3. 爬虫_url去重策略

    如何对url去重? 将访问url保存到数据库中,效率低,最简单 将url保存到set中,查询速度快,但当url达到1亿多条时候,占用太多内存空间 将url经过md5等方法哈希后保存到set中 用bit ...

  4. 实现iota函数

    void Reverse(char *s) { char temp; char *p = s; char *q = s; while (*p != '\0') { p ++; } q --; whil ...

  5. 移动端 -webkit-user-select:text; ios10 bug 解决方案

    移动端一般body的css.会设置 作用就不解释了: body{ height:100%;min-height:100%; font-family: "微软雅黑",'Helveti ...

  6. 解决publish不编译问题

    突然发现上午写的博客没了,是我没保存吗?再写一遍 eclipse下将项目部署到tomcat,run之后页面访问出现404,看日志没异常,但出现了No mapping found for HTTP re ...

  7. java.lang.Thread

    package java.lang; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java. ...

  8. 使用CefSharp开发一个12306“安心刷票弹窗通知”工具

    有需求就要改进 最近两年没有在春节回家过年了,主要是票太难买,虽然之前写了一个12306“无声购票弹窗”工具,解决了抢票问题,但是全家老小一起回去还是很累,干脆就在北京过年了.这两天突然有一个朋友问我 ...

  9. 编译和解释性语言和python运行方式

    1.编译型语言和解释性语言 编译型语言:在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了.程序执行效率高,依赖编译器,跨平台性差些.如C. ...

  10. 查看Eclipse运行工程时使用的Command Line

    一.查看使用的Command Line 1.Window -> Show View -> Other... -> Debug 2.运行工程,然后在Debug视窗中找到运行的工程的主线 ...