Visual Studio2013终于开始比较良好地支持C99特性了。在此之前,如果用C语言写代码的话,变量名都需要放到函数体的前面部分,代码写起来十分别扭。

而Visual Studio2013中的C编译器已经支持了不少C99标准,让我来为大家盘点一下。

现在仍然不支持的语法特性有:

1、inline关键字:在VC中,仍然需要用微软自己定义的__inline,而尚不支持inline,尽管inline在C++中是支持的。

2、restrict关键字。

3、_Complex与_Imaginary:尽管VS2013的C语言编译器可以用complex.h库,不管这两个关键字不支持。库的实现用的是描述复数的结构体。

4、变长数组

除了上述四点,其它主要特性都予以了支持。下面给出一个示例代码来给出支持特性的描述:

#include <stdio.h>

#define MY_PRINT(...)   printf(__VA_ARGS__)

static __inline int MyGetMax(int x, int y)
{
return x > y ? x : y;
} int main(void)
{
MY_PRINT("%s\n", "Hello, world!"); int arr[] = { [] = , [] = , [] = }; MY_PRINT("The value is: %d\n", arr[] + arr[]); struct Test
{
int x;
float f;
_Bool b;
long long ll; }test = {.x = , .f = -0.5f, .b = }; struct Test t = (struct Test){ .ll = 100LL }; for (int i = ; i < test.x; i++)
t.x += test.x; int *p = (int[]){ [] = t.x, [] = test.b + test.ll }; MY_PRINT("The value is: %d\n", p[] + p[] + p[] + p[]);
}

Visual Studio2013的C语言编译器对C99标准的支持情况的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之0401阶乘

      题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...

  2. 基于visual Studio2013解决C语言竞赛题之0205位数求和

     题目

  3. 基于visual Studio2013解决C语言竞赛题之0201温度转换

    题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...

  4. 基于visual Studio2013解决C语言竞赛题之前言

    前言:关于VS2013 刚装完VS2013,新的IDE给人全新的编程体验,界面比以前更急简洁漂亮,不多说了,先上图吧 第一次启动VS2013

  5. 基于visual Studio2013解决C语言竞赛题之0409 100以内素数

       题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...

  6. 基于visual Studio2013解决C语言竞赛题之0408素数

      题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...

  7. 基于visual Studio2013解决C语言竞赛题之0407最大值最小值

      题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...

  8. 基于visual Studio2013解决C语言竞赛题之0406数列求和

      题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n- ...

  9. 基于visual Studio2013解决C语言竞赛题之0405阶乘求和

      题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...

随机推荐

  1. Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?

    一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...

  2. IDEA部署项目到远程服务器

    一.idea安装阿里插件Alibaba Cloud Toolkit 二.添加Host 三.应用部署 四.修改源程序重新部署 五.查看实时日志 欲买桂花同载酒,终不似,少年游

  3. Oracle创建上下文 SYS_CONTEXT

    Oracle创建上下文 SYS_CONTEXT 1. 系统默认的一些参数 set heading offselect SYS_CONTEXT('USERENV', 'TERMINAL') termin ...

  4. Excel 教程二 单元格范围的使用

    上一篇已经看了Excel这个软件的基本功能区,这一节我们来看一下我们经常使用的单元格范围. 一.首先我们看一下单元格,行和列 单元格指的是excel工作簿中的某一行某一列对应的具体位置,列指的是从上到 ...

  5. synchronized 和 volatile 的区别是什么?(未完成)

    synchronized 和 volatile 的区别是什么?(未完成)

  6. Linux系统进程的知识总结,进程与线程之间的纠葛...

    来源:嵌入式ARM 当一个程序开始执行后,在开始执行到执行完毕退出这段时间内,它在内存中的部分就叫称作一个进程. Linux 是一个多任务的操作系统,也就是说,在同一时间内,可以有多个进程同时执行.我 ...

  7. 201812-4 数据中心(kruskal)

    考场上的时候被题目完全蒙住了,当时状态也不好,前几次考试每次考试当天就头晕感冒流鼻涕 好的,以上都是借口,自己没有好好复习才是真的... 题目: 好的,以上题目简述就是:给你一个无向连通图,求它的最小 ...

  8. 2019牛客多校C Governing sand——桶&&思维题

    题意 有 $n$ 种树,每种树都有高度 $H_i$,费用 $C_i$,数量 $P_i$,现要砍掉一些树,使得剩下的树中最高的树的数量超过一般,求最小的费用.($1 \leq n \leq 10^5, ...

  9. Miller-Rabin素性测试

    有时候我们想快速的知道一个数是不是素数,而这个数又特别的大导致 $O(\sqrt n)$ 的算法也难以通过,这时候我们可以对其进行 Miller-Rabin 素数测试,可以很大概率测出其是否为素数. ...

  10. 19、属性赋值-@PropertySource加载外部配置文件

    19.属性赋值-@PropertySource加载外部配置文件 加载外部配置文件的注解 19.1 [xml] 在原先的xml 中需要 导入context:property-placeholder 声明 ...