C语言标准
1、概述
C语言标准是由ANSI(美国国家标准协会)和ISO(国际标准化组织)共同制定的一种语言规范。标准经历过如下更新:
- C89/C90标准
- C99标准
- C11标准
- C17标准
2、C89/C90标准
(1)这是1989年正式发布的C语言标准,简称为C89或C90。这个标准定义了C语言的基本语法、数据类型、运算符、控制结构等核心特性。
3、C99标准
(1)在1999年,ISO对C语言进行了修订,发布了ISO9899:1999标准,简称为C99。这个标准增加了一些新的特性,例如支持长长整型(long long int)、无符号整数类型(unsigned int)、可变长度数组(VLA)等。同时,C99还强调了可移植性,要求编译器能够处理不同平台的差异。
4、C11标准
(1)C11标准:在2011年,ISO再次对C语言进行了修订,发布了ISO9899:2011标准,简称为C11。这个标准引入了一些新的特性,例如支持二进制字面量、线程局部存储(thread-local storage)、指定初始化器等。此外,C11还加强了对于并发编程的支持,提供了更好的线程同步机制。
5、C17标准
在2017年,ISO再次更新C语言标准,发布了ISO9899:2017标准,简称为C17。这个标准引入了一些新的特性,例如支持指定长度的数组、聚合类型(aggregate types)、通用初始化等。此外,C17还加强了对于嵌入式编程的支持,提供了更好的内存管理和异常处理机制。
6、总结
(1)需要注意的是,虽然C语言标准在不断更新,但是不同的编译器可能会有不同的支持程度和实现方式。因此,在实际开发中,需要参考具体的编译器文档和标准版本来使用合适的语言特性。
7、Keil中的C语言标准
(1)C89中,变量的定义必须放在作用域的开头,C99中,变量的定义可以放在任何地方。
(2)Keil中设置使用C99标准,如下图:
- 勾选C99 Mode
- 或者Misc Controls中添加--c99

相关文章:
C语言标准
1、概述 C语言标准是由ANSI(美国国家标准协会)和ISO(国际标准化组织)共同制定的一种语言规范。标准经历过如下更新: C89/C90标准C99标准C11标准C17标准 2、C89/C90标准 (1)这是1989年正式发布的C语言标准࿰…...
TI 毫米波雷达开发系列之mmWave Studio 和 Visuiallizer 的异同点雷达影响因素分析
TI 毫米波雷达开发之mmWave Studio 和 Visuiallizer 的异同点 引入整个雷达系统研究的目标分析影响这个目标的因素硬件影响因素 —— 雷达系统的硬件结构(主要是雷达收发机)AWR1642芯片硬件系统组成MSS 和 DSS 概述MSS 和 DSS 分工BSS的分工AWR1642 组成…...
SpringBoot事务处理
一、事务回顾 回顾地址: 深入理解数据库事务(超详细)_数据库事务操作_Maiko Star的博客-CSDN博客 事务: 是一组操作的集合,是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败 事…...
网络安全—自学
1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...
首页以卡片形式来展示区块链列表数据(Web3项目一实战之五)
我们已然在 Web3 分布式存储 IPFS(Web3项目一实战之四) 介绍了什么是IPFS,以及在本地电脑如何安装它。虽然在上一篇讲解了该怎么安装IPFS,也做了相应的配置,但在本地开发阶段,前端总是无法避免跨域这个远程请求api的”家常便饭的通病“。 很显然,对于出现跨域这类常见问…...
opencv使用pyinstaller打包错误:‘can‘t find starting number (in the name of file)
使用Python语言和opencv模块在pycharm中编辑的代码运行没问题,但是在使用pyinstaller打包后出现错误can‘t find starting number (in the name of file) [ERROR:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-q3d_8t8e\opencv\modules\videoi…...
4.一维数组——用数组处理求Fibonacci数列前20项
文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 四、结果显示 前言 本系列为一维数组编程题,点滴成长,一起逆袭。 一、题目描述 用数组处理求Fibonacci数列前20项 二、题目分析 前两项:f[20]{1,1} 后18项:for(…...
讯飞星火知识库文档问答Web API的使用(二)
上一篇提到过星火spark大模型,现在有更新到3.0: 给ChuanhuChatGPT 配上讯飞星火spark大模型V2.0(一) 同时又看到有知识库问答的web api,于是就测试了一下。 下一篇是在ChuanhuChatGPT 中单独写一个基于星火知识库的内容…...
第十三章 深度解读预训练与微调迁移,模型冻结与解冻(工具)
一个完整的代码 pythonCopy codeimport torch import torchvision import torchvision.transforms as transforms import torch.nn as nn import torch.optim as optim # 设置设备(CPU或GPU) device torch.device("cuda" if torch.cuda.is_a…...
tinyViT论文笔记
论文:https://arxiv.org/abs/2207.10666 GitHub:https://github.com/microsoft/Cream/tree/main/TinyViT 摘要 在计算机视觉任务中,视觉ViT由于其优秀的模型能力已经引起了极大关注。但是,由于大多数ViT模型的参数量巨大&#x…...
解决ssh -T git@github.com报错connection closed问题
解决ssh -T gitgithub.com报错connection closed问题 问题解决 问题 $ ssh -T gitgithub.com kex_exchange_identification: Connection closed by remote host Connection closed by 20.205.243.166 port 22解决 参考链接 $ ssh -T -p 443 gitssh.github.com...
新手如何购买保险,保险投资基础入门
一、教程描述 本套保险教程,大小2.63G,共有11个文件。 二、教程目录 第01课 保险到底有什么用.mp4 第02课 已有社保还需要商业保险吗.mp4 第03课 你必须要懂的保险基础知识.mp4 第04课 关于重疾你必须要知道的几件事情.mp4 第05课 家庭重疾险如何…...
基于springboot网上超市管理系统
基于springboot网上超市管理系统 摘要 随着互联网的快速发展,电子商务行业迎来了蓬勃的发展,网上超市作为电子商务的一种形式,为消费者提供了便利的购物体验。本文基于Spring Boot框架,设计和实现了一个网上超市管理系统ÿ…...
FlagEmbedding目前最好的sentence编码工具
FlagEmbedding专注于检索增强llm领域,目前包括以下项目: Fine-tuning of LM : LM-Cocktail Dense Retrieval: LLM Embedder, BGE Embedding, C-MTEB Reranker Model: BGE Reranker 更新 11/23/2023: Release LM-Cocktail, 一种通过模型融合在微调时保持原有模型通用…...
rabbitMQ发布确认-交换机不存在或者无法抵达队列的缓存处理
rabbitMQ在发送消息时,会出现交换机不存在(交换机名字写错等消息),这种情况如何会退给生产者重新处理?【交换机层】 生产者发送消息时,消息未送达到指定的队列,如何消息回退? 核心&…...
STM32 MAP文件
文章目录 1 生成Map2 map中概念3 文件分析流程3.1 Section Cross References3.2 Removing Unused input sections from the image(移除未使用的段)3.3 Image Symbol Table 映像符号表3.4 Memory Map of the image(映像的内存分布)…...
云原生Kubernetes系列 | Kubernetes静态Pod的使用
云原生Kubernetes系列 | Kubernetes静态Pod的使用 静态pod不建议在master上操作,因为master上跑的是集群核心静态pod,如果配置失败,会导致集群故障。建议在knode1或knode2上去做。 kubernetes master节点上的核心组件pod其实都是静态pod: [root@k8s-master ~]# ls /etc/ku…...
二次创作Z01语言
目录 一,字符集 二,编译分词 三,token含义 四,Z01翻译成C 五,执行翻译后的代码 六,打印Hello World! 一,字符集 假设有门语言叫Z01语言,代码中只有0和1这两种字符。 二&#…...
【蓝桥杯国赛真题28】Scratch行驶的汽车 少儿编程图形化编程 中小学生第十四届蓝桥杯scratch国赛真题讲解
目录 scratch行驶的汽车 一、题目要求 编程实现 二、案例分析 1、角色分析...
LeetCode Hot100 236.二叉树的最近公共祖先
题目: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节…...
接口自动化流程
1.需求分析 理解业务需求,了解接口所支持的业务场景和业务逻辑,根据业务需求,明确接口需要实现的具体功能,如数据的获取,修改,删除等操作,以及接口的输入输出要求,分析接口之间的依…...
轻量级嵌入式电机控制库:面向差速机器人的裸机PWM驱动方案
1. 项目概述Simple_Robot_Motor_Control 是一个面向嵌入式机器人平台的轻量级电机控制库,专为资源受限的微控制器(如 STM32F0/F1、ESP32-C3、nRF52832 或 ATmega328P)设计。其核心目标并非提供工业级运动控制算法,而是以极简接口抽…...
嵌入式GPIO镜像与锁存:亚微秒级确定性I/O控制库
1. 项目概述hardwareIO是一个面向嵌入式底层开发的轻量级硬件I/O抽象与控制库,其设计目标并非提供通用外设驱动(如UART、SPI协议栈),而是聚焦于物理层信号的确定性操控与状态同步——即对GPIO引脚进行高精度镜像(mirro…...
【反蒸馏实战 07】技术支持工程师:当AI客服处理80%工单,你的价值在复杂根因与客户信任@技术支持工程师的AI治理与根因诊断实操指南
摘要:2026年,AI智能体已替代40%的技术支持岗位,处理80%以上的标准化工单——但这并非技术支持工程师的终点。本文基于AI治理框架、分布式链路追踪技术、Python自动化工具链,拆解“脚本执行者”到“AI治理工程师”的转型路径。通过4个核心实操模块(AI决策审计系统、跨系统根…...
打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)竿
OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...
如何用三月七小助手实现崩坏星穹铁道全自动游戏:终极高效教程
如何用三月七小助手实现崩坏星穹铁道全自动游戏:终极高效教程 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中繁琐…...
PostgreSQL COPY命令实战:高效数据迁移与批量处理技巧
1. COPY命令基础:PostgreSQL的数据搬运工 第一次接触PostgreSQL的COPY命令时,我正面临着一个紧急的数据迁移任务。当时需要将百万级用户数据从旧系统迁移到新平台,试过各种方法后,COPY命令的导入速度让我震惊——比传统的INSERT语…...
BERT中文文本分割效果惊艳展示:学术论文讲义自动划分为‘引言-方法-结论’
BERT中文文本分割效果惊艳展示:学术论文讲义自动划分为引言-方法-结论 1. 效果惊艳开场:让杂乱文本秒变结构清晰 你有没有遇到过这样的情况:拿到一份长达几十页的学术讲座录音转写稿,密密麻麻的文字堆在一起,找不到开…...
3步轻松解密网易云NCM加密音乐:ncmdump工具全攻略
3步轻松解密网易云NCM加密音乐:ncmdump工具全攻略 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否遇到过这样的困扰:从网易云音乐下载的歌曲只能在特定客户端播放,无法在车载音响、手机自带…...
离线环境下的.NET Framework 3.5安装指南:从Windows镜像到成功部署
1. 为什么需要离线安装.NET Framework 3.5 在部署Windows服务器时,经常会遇到需要安装.NET Framework 3.5的情况。这个老版本的框架虽然已经有些年头了,但仍然是很多传统企业应用和数据库系统(比如SQL Server 2012)的必备运行环境…...
