zoukankan      html  css  js  c++  java
  • 旧关键字的新位置(C99)

    C99允许将类型限定词和存储类限定词static等放在函数原型和函数头部的形式参量所属的初始方括号内。对于类型限定词的情形,这样做为已有功能提供了一个可选语法。例如,下面是一个使用旧语法的声明:

    void ofmouth (int * const a1, int * restrict a2, int n); // 以前的风格

     它表明a1是一个指向int的const指针,a2是一个受限指针。等价的新语法如下:

    void ofmouth (int a1[const], int a2[restrict], int n); // C99允许

    static的情形是不同的,因为它引发了一些新问题。例如,考虑如下原型:

    double stick (double ar[static 20];

    使用static表明在函数调用中,实际参数将是一个指向数组首元素的指针,该数组至少具有20个元素(即使用“static n”来表示保证至少有n个元素)。这样做的目的是允许编译器使用这个信息来优化函数的代码。

    和restrict相同,关键字static有两个读者。一个是编译器,它告诉编译器可以自由地做一些有关优化的假定。另一个是用户,它告诉用户仅使用满足static要求的参数(至少有所保证个数的元素)。

    ref:《C Primer Plus》

  • 相关阅读:
    office365离线安装
    c#使用emit方法DB,实体相互转换
    c#采用emit将DataTable转List
    c#将List转换成DataTable
    c#将List转换成DataTable(采用Emit)
    聊聊编程开发的数据库批量插入(sql)
    c#随便聊聊数据库操作
    c#聊聊文件数据库kv
    WPF几个样式
    c#(IronPython)调用Python方法
  • 原文地址:https://www.cnblogs.com/qwertWZ/p/2868147.html
Copyright © 2011-2022 走看看