首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言C99标准、C11标准新增加的特性

C语言标准C语言从其诞生至今,经历了多个标准的更新,主要标准包括:C89/C90 (ANSI C / ISO/IEC 9899:1990):这是C语言的第一个官方标准,由ANSI于1989年发布,后被ISO...C99 (ISO/IEC 9899:1999):发布于1999年,C99标准在C89的基础上进行了大量扩展,引入了如可变长度数组(VLAs)、限制指针(restrict)、内联函数、复数类型、新的整数类型...C89标准(也称为C90标准)C89是C语言的第一个官方国际标准,正式名称为ISO/IEC 9899:1990。...C99标准增加了诸如限制指针(restrict)、内联函数、可变长度数组(VLAs)、复数类型(_Complex)、新的整型常量(如_Bool)、改进的浮点数处理以及对编译器限制的放宽等特性。...可变长度数组(VLAs)#include int main() { int n = 5; int arr[n]; // 数组大小在运行时决定 for(int i =

8000

【C语言笔记】什么是ANSI C标准?

什么是ANSI C、ISO C、C89、C90标准? 随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。...在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会(ANSI)采纳为ISO/IEC 9899:1990。这个版本有时候称为C90或者ISO C。...综上,ANSI C、ISO C、C89、C90其实是同一种标准。 什么是C99标准? 2000年3月,ANSI采纳了 ISO/IEC 9899:1999 标准。这个标准通常指C99。...C99新增了一些特性,如:支持不定长的数组,即数组长度可以在运行时决定。...GCC编译器在编译的时候可指定C语言标准: 指定c90标准: -std=c90 指定C99标准: -std=c99 定C11标准(目前正在开发中): -std=c11 以上就是关于C语言标准的笔记,如有错误欢迎指出

2.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么C语言依然是必学的编程语言,这3点告诉你答案

    二、C历史,及C标准 C语言发展的脚步,其实一直都没有停止:从C89、 C90、 C99...... C17,C语言标准还在更新。...Language,第1版 2.标准 C 1983:ANSI 建立 X3J11 委员会 1988:The C Programming Language ,第2版 1989:C89 ,ANSI C 标准出版 1990:C90...,ANSI C 标准被接纳为 ISO/IEC 9899-1990 1995: C95 (ISO/IEC 9899 AM1) 极大扩充了宽和多字节字符支持 双标符、iso646.h 1999:C99 (...ISO/IEC 9899:1999) A.新特性: _Bool 、 long long 、 stdint.h 、 inttypes.h 、 restrict 、复合字面量、变长度数组、伸缩数组成员、指代初始化器...窄与宽字符串字面量的连接、枚举的尾逗号、类函数宏的空参数、 STDC_* pragma 、 va_copy 、 tmpnam 的空返回、 setvbuf 中的空指针、 printf 的 hh 与 ll 长度指定符

    96420

    一文搞懂CAN和CAN FD总线协议

    DLC表示在数据帧时实际的数据长度。 标准数据帧的 ID 有 11 个位。从 ID10 到 ID0 依次发送。禁止高 7 位都为隐性(禁止设定:ID=1111111XXXX)。...禁止高 7 位都为隐性(禁止设定:基本 ID=1111111XXXX)。 字节2~5为报文识别码,其高28位有效。 字节6~13为数据帧的实际数据,远程帧时无效。...2015年6月30日,国际标准化组织(ISO)已经正式认可CAN FD,并无反对票通过ISO 11898-1作为国际标准草案。 8、什么是CAN FD?...通过标准化对其进行了改进,现已纳入ISO 11898-1:2015。一开始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD是不兼容。...场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps,其他部分与CAN相同。

    5.9K55

    RNAseq不同测序平台比较

    一、不同平台 RNAseq 研究的比较 在前面介绍过不同测序平台的优势,目前市场上主流测序平台主要包括短读长测序的 illumina 测序平台,华大基因的 MGI 测序平台,长度长测序的...如人的转录组中,50%的转录本长度大于 2500 bp,转录本长度范围在 186 bp 到 109 kb。...全长转录组(Iso-Seq)是指利用三代单分子实时测序技术(SMRT),无需对RNA 进行打断和拼接,即可直接获得完整的全长转录本。...目前全长转录组主要应用在以下三个方面: 1、可变 polyA 检测 三代长读长技术的 Iso-Seq 技术,由于利用 OligodT 引物合成 cDNA,poly(A)会出现在测序结果中,...三代测序检测到的融合基因示意图 不过,由于 pacbio 测序数据量第,目前 Iso-seq 只能用于定性研究,还不适合用于大规模定量研究。

    2.9K20

    Java基础(十六):String的常用API

    = "中".getBytes("iso-8859-1"); 将返回"中"这个汉字分别在gbk、utf-8、iso-8859-1编码下的字节数组表示 此时b_gbk的长度为2,b_utf8的长度为3,b_iso88591..., "iso-8859-1"); 打印出s_gbk、s_utf8、s_iso88591可以看到,s_gbk和s_utf8都是"中",而s_iso88591是一个乱码 这是因为iso-8859-1的编码表中...“的字节数组表示 再通过new String(b_iso88591, “iso-8858-1”)还原得到的是”?"...s_iso88591 = new String("中".getBytes("utf-8"), "iso-8859-1"); 得到的字符串s_iso88591实际上是三个在iso-8859-1中的字符,...:可变的字符序列;线程安全(方法有synchronized修饰),效率低;底层使用char[]数组存储 (JDK8.0中) StringBuilder:可变的字符序列; jdk1.5引入,线程不安全的,

    5800

    matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类|附代码数据

    每个序列具有12个特征,并且长度不同。数据集包含270个训练观察和370个测试观察。 加载序列数据 加载日语元音训练数据。 XTrain 是包含长度可变的维度12的270个序列的单元阵列。 ...为防止训练过程增加太多填充,您可以按序列长度对训练数据进行排序,并选择小批量的大小,以使小批量中的序列具有相似的长度。下图显示了对数据进行排序之前和之后的填充序列的效果。 获取每个观察的序列长度。...按序列长度对数据进行排序。 在条形图中查看排序的序列长度。...与最长序列的长度相同,请将序列长度指定为  'longest'。为确保数据仍按序列长度排序,请指定从不对数据进行随机排序。 由于批处理的序列短,因此训练更适合于CPU。...XTest 是包含370个长度可变的维度12的序列的单元阵列。 YTest 是标签“ 1”,“ 2”,...“ 9”的分类向量,分别对应于九个扬声器。

    84520

    matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类|附代码数据

    每个序列具有12个特征,并且长度不同。数据集包含270个训练观察和370个测试观察。 加载序列数据 加载日语元音训练数据。 XTrain 是包含长度可变的维度12的270个序列的单元阵列。 ...为防止训练过程增加太多填充,您可以按序列长度对训练数据进行排序,并选择小批量的大小,以使小批量中的序列具有相似的长度。下图显示了对数据进行排序之前和之后的填充序列的效果。 获取每个观察的序列长度。...按序列长度对数据进行排序。 在条形图中查看排序的序列长度。...与最长序列的长度相同,请将序列长度指定为  'longest'。为确保数据仍按序列长度排序,请指定从不对数据进行随机排序。 由于批处理的序列短,因此训练更适合于CPU。...XTest 是包含370个长度可变的维度12的序列的单元阵列。 YTest 是标签“ 1”,“ 2”,...“ 9”的分类向量,分别对应于九个扬声器。

    65210

    全长转录组 | Iso-Seq 三代测序数据分析流程 (PacBio) (1)

    很多物种的转录本非常多样和复杂,绝大多数真核生物基因不符合“一基因一转录本”的模式,这些基因往往存在多种可变剪切(Alternative splicing,AS)形式。...Iso-Seq 方法可对整个 cDNA 分子(长达 10 kb 或更长)进行测序,无需进行生物信息学转录本组装,因此可以对批量(bulk)和单细胞转录本组中的新基因和异构体进行表征,并进一步:鉴定可变剪接...(AS) 事件,包括可变起始位点、终止位点、内含子保留和外显子跳跃事件。...三代测序的特点就是读长很长,可以达到十几kb, 对于短的插入片段而言,CCS这样定义当然没有问题,但是对于全长转录本而言,转录本长度很长,比如转录本长度1kb, 读长3kb, 此时在一个零模波导孔(ZMW...--min-polya-length: 最小polyA尾长度,默认值为20。

    9.4K21

    字符集

    其编码方式是可变长度的,因为 code point 是用一个或两个 16 位代码单元编码的。...UTF-16 比起 UTF-8,好处在于大部分字符都以固定长度的字节 (2 字节) 储存,但 UTF-16 却无法兼容于 ASCII 编码,实际使用也比较少。...UTF-32UTF-32 (或 UCS-4):对每一个 Unicode 码点使用 4 字节进行编码,其它的 Unicode 编码方式则使用不定长度编码。就空间而言,UTF-32 是非常没有效率的。...虽然每一个码位使用固定长度的字节看似方便,它并不如其它 Unicode 编码使用得广泛。 由此我们就明白了为什么中文默认使用 GB1832 而不使用 UTF-8?...UTF-8可变长度字符编码: UTF-8是可变长度的字符编码,能够使用1~4个8位字节对编码表中的有效代码点进行编码,它被设计成向后兼容,Unicode的前128个字符与ASCII一一对应,所以有效的ASCII

    1.7K10

    详解以太坊虚拟机(EVM)的数据存储机制

    可以将这种存储视为位于智能合约地址的无限长度的数据结构数组。存储机制确保存储位置没有冲突,并遵循一组规则。使用这些规则,我们可以解码任何合约的状态。解码存储在映射中的数据需要知道所使用的密钥。...插槽位置 变量在智能合约的存储阵列中的位置由代码中出现的顺序以及变量的大小决定。此位置称为插槽。...这样做使我们无需考虑可变变量即可查看分配。 请注意,当对数字应用keccack哈希时,数字必须是0填充的64位值。...对于数组,位置将返回数组的长度。 通过将Keccack哈希传递给索引为0的GetStorageAt来解码数组索引。数组的每个后续索引位于与位置求和的哈希值处。...也就是说,如果一个元素小于256位,则阵列的多个索引将占用存储阵列中的单个插槽。 图2显示并提供了发生的打包的说明。当类型的长度小于256位时,EVM尝试将其他变量打包到插槽中。

    1.2K20

    Oracle 全球化特性与字符集

    在Oracle中,几种常用的Unicode为UTF-8,AL16UTF8,AL32UTF8 2.Oracle所支持的字符集及分类 Oracle支持两百多种字符集,包含了单字节、可变字节以及通用字符集等...字符集通常根据说使用的字节数来分类,通常分为以下几类 a.单字节字符集,如US7ASCII(7bit),WE8ISO8859P1(8bit),WE8DEC(8bit) b.可变长度字符集,如JA16SJIS...,是ASCII码的严格超集,即ASCII字符集中表示字符码值与AL32UTF8中完全相同 该字符集支持1-4字节可变长度编码,对欧洲使用的字符通常用1-2个字节,对于亚洲则使用3个字节,即一个汉字使用...]$ export NLS_LANG=French_France.WE8ISO8859P1 --将环境变量设定为French_France.WE8ISO8859P1 [oracle@oradb ~]$...创建时被定义 创建见后不能被改变,仅有很少列外 可以被改变 可以存储列的类型为char,varchar2,clob,long 可以存储的类型为NCHAR,NVARCHAR2,NCLOB 能够存储可变长度字符集

    1.5K10

    Java基础扫盲(二)

    想看Java基础扫盲(一)的可以观看我的上篇文章Java基础扫盲 String为什么设计为不可变的 关于String为什么设计为不可变的,可以从缓存、安全性、线程安全和性能等角度出发的。...线程安全性: 不可变会自动使字符串成为线程安全的,因为当从多个线程访问它们时,它们不会被更改。 因此,一般来说,不可变对象可以在同时运行的多个线程之间共享。...String有长度限制吗 String时有长度限制的,编译期和运行期不一样。...Latin1(又称ISO 8859-1)是一种字符编码格式,用于表示西欧语言,包括英语、法语、德语、西班牙语、葡萄牙语、意大利语等。...它由国际标准化组织(ISO)定义,并涵盖了包括ASCII在内的128个字符。 Latin1编码使用单字节编码方案,也就是说每个字符只占用一个字节,其中第一位固定为0,后面的七位可以表示128个字符。

    9110
    领券