一、指定数组初始化
int arry[6] = { [4] = 29, [2] = 15 };   //指定arry[4]=29, arry[2]=15 ,其他的为0

等价于
int arry[6] = { 0, 0, 15, 0, 29, 0 };

类似于注定结构体初始化

二、空结构体,C89标准的结构体不支持空结构体的。。
struct empty {
};

三、C++一样的注释符号 //
四、支持inline类联函数
static inline int
inc (int *a)
{
return (*a)++;
}

__inline__  在一个头文件中使用 __inline__ 声明inline函数,因为ISO C90没有inline,这个时候就会被解释成空,忽略掉他。。。

五、声明时使用变量初始化
foo (float f, float g)
{
float beat_freqs[2] = { f-g, f+g };
/* ... */
}

六、标识符允许添加美元符号
七、老式的函数定义不在支持
/* Old-style function definition.  */
int
isroot (x)   /* ??? lossage here ??? */
uid_t x;
{
return x == 0;
}

八、case语句的范围caselow ...high:
像 case 'A'...'Z':
case 1...5:

九、多了一个转义字符 '\e' ,表示 <ESC>
十、类型转换可以转成union类型
union foo { int i; double d; };
int x;
double y;
union foo u;
/* ... */
u = (union foo) x  ==  u.i = x
u = (union foo) y  ==  u.d = y

十一、变量、函数和类型可以添加属性 __attribute__
十二、数组可以用restrict修饰, 想 arry_name[restrict]
十三、支持复数运算

十四、支持嵌套函数(Nested Functions)
foo (double a, double b)
{
double square (double z) { return z * z; }

return square (a) + square (b);
}

十五、修改了条件运算符
原先的是:
x?x:y;

C99可以写成:
x ? : y;

十六、标签即变量
static void *array[] = { &&foo, &&bar, &&hack };
goto *array[i];
十七、支持变参宏
#define ENABLE_DEBUG 1   //else, comment this line
#ifdef ENABLE_DEBUG
#define DEBUG_LOG(fmt,...) fprintf(stderr, "%s:%d: " fmt "\n",  \
__func__, __LINE__, ## __VA_ARGS__)
#else
#define DEBUG_LOG(fmt, ...) do {} while (0)
#endif

等等。。。。。。。。。。。。。。

ISO C99中的一些扩展(草稿)相关推荐

  1. MySQL中的空间扩展

    目录 19.1. 前言19.2. OpenGIS几何模型 19.2.1. Geometry类的层次19.2.2. 类Geometry19.2.3. 类Point19.2.4. 类Curve19.2.5 ...

  2. C语言:C99中的bool量

    在C99标准之前,只能自定义bool量,常见的方式就是定义宏和枚举,例如: ① 枚举法 typedef enum bool = { False, Ture } ② 定义宏 typedef int BO ...

  3. PyTorch中的C++扩展

    今天要聊聊用 PyTorch 进行 C++ 扩展. 在正式开始前,我们需要了解 PyTorch 如何自定义module.这其中,最常见的就是在 python 中继承torch.nn.Module,用 ...

  4. 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...

    今天,我们将讨论名为 BootISO 的实用程序类似工具.它是一个简单的 bash 脚本,允许用户来从 ISO 文件中创建一个可启动的 USB 设备. -- Prakash Subramanian(作 ...

  5. BootISO:从 ISO 文件中创建一个可启动的 USB 设备

    为了安装操作系统,我们中的大多数人(包括我)经常从 ISO 文件中创建一个可启动的 USB 设备.为达到这个目的,在 Linux 中有很多自由可用的应用程序.甚至在过去我们写了几篇介绍这种实用程序的文 ...

  6. Flask框架(flask-script扩展命令行和flask中数据库migrate扩展的使用)

    flask-script扩展命令行 1. 安装  : pip install  Flask-Script 2. 在程序中   from flask_script import Manager   '' ...

  7. 如何在php7.2/php7.3中安装mcrypt扩展?

    mcrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启.window环境下,PHP>=5.3,默认开启mcrypt扩展.mcrypt扩展是mcrypt加密库的接口 ...

  8. dd命令iso linux_BootISO:从 ISO 文件中创建一个可启动的 USB 设备

    今天,我们将讨论名为 BootISO 的实用程序类似工具.它是一个简单的 bash 脚本,允许用户来从 ISO 文件中创建一个可启动的 USB 设备. -- Prakash Subramanian(作 ...

  9. centos 打开pdo_mysql_centos中添加php扩展pdo_mysql步骤

    pdo_mysql是php中一个mysql连接类了,我们可以直接使用pdo_mysql来操作数据库这样自己可以不需要写数据库操作类了,下面来介绍在centos中安装pdo_mysql扩展的步骤. 本文 ...

最新文章

  1. 在DWR中实现直接获取一个JAVA类的返回值的两种方法
  2. Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
  3. 西瓜书学习记录-决策树(第四章)
  4. 基于windows平台的命令行软件安装工具Chocolatey的安装
  5. python安装界面翻译_python环境搭建
  6. AWK高级编程 转载
  7. [转]Aptana Studio 3配置Python开发环境图文教程
  8. 大数据架构师学习方向---加油。
  9. 大学计算机vfp最新考试题库,大学计算机vfp考试选择题题库.doc
  10. [RESTful web services读书笔记] 接口设计中维持XML和JSON表述的兼容性
  11. C语言课程设计:学生管理系统
  12. 小程序保存图片相册无响应
  13. 展视互动签约新华网 创在线教育新蓝图
  14. 从期货开户公司分享交易所手续费返还
  15. 【PTA】斐波那契数列第n项
  16. hdf5-java_Java HDF5LibraryException類代碼示例
  17. SpringBoot整合Flowable工作流引擎框架
  18. db2 reorg的四个阶段
  19. 怎么让照片变年轻_如何用ps把人变年轻水嫩
  20. 我对于互联网发展的看法和一些理解

热门文章

  1. java 日期及别的小技巧
  2. pcie ep 应该支持哪种interrupt_7寸国产笔记本评测,酷睿处理器+8G+256G,还支持手写笔...
  3. 服务器开机提示修复,电脑开机提示自动修复怎么办?win10电脑开机提示自动修复教程...
  4. java保持运行_保持Java程序无限运行的方法是有效的吗?
  5. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器
  6. python中tensorflow的函数简单用法(未完)
  7. B. Bogosort codeforces(思维)
  8. 八种基本排序方式(插入排序,希尔排序,选择排序,冒泡排序,快速排序,堆排序,归并排序,基数排序)代码模板以及时间复杂度
  9. 统计csv词频_基于给定词语列表统计词频
  10. Ubuntu16.04编译RK3399:make kernel.img error