做网站那个语言好,男女做暧暧试看网站49,动画视频制作软件app免费,wordpress文章页不显示侧边栏文章目录 C 介绍C 擅长领域C 程序是如何开发编译器、链接器和库编译预处理编译阶段汇编阶段链接阶段 安装集成开发环境 #xff08;IDE#xff09;配置编译器#xff1a;构建配置配置编译器#xff1a;编译器扩展配置编译器#xff1a;警告和错误级别配置编译器#xff1… 文章目录 C 介绍C 擅长领域C 程序是如何开发编译器、链接器和库编译预处理编译阶段汇编阶段链接阶段 安装集成开发环境 IDE配置编译器构建配置配置编译器编译器扩展配置编译器警告和错误级别配置编译器选择语言标准 C 介绍
C发音为“see plus plus”由贝尔实验室的Bjarne Stroustrup开发作为C的扩展从1979年开始。C 为 C 语言添加了许多新特性也许最好将其视为 C 的超集尽管这并不完全正确因为 C99 引入了一些 C 中不存在的功能。C之所以声名鹊起主要是因为它是一种面向对象的语言。至于什么是“对象”以及它与传统编程方法有何不同我们将在后面的章节中介绍。
C在1998年由ISO委员会标准化这意味着ISO标准委员会批准了描述C语言的文档以帮助确保所有编译器都遵守同一组标准。2003年发布了该语言的一个小更新称为C03。
从那时起对 C 语言进行了五次重大更新C11、C14、C17、C20 和 C23每次都增加了额外的功能。特别是C11增加了大量的新功能并被广泛认为是该语言的新基线版本。预计未来每三年左右对该语言进行一次升级。
该语言的每个新正式版本都称为语言标准或语言规范。标准以发布年份命名。例如没有C15因为2015年没有新标准。
C 擅长领域
以下是一些最有可能用 C 编写的常见应用程序类型
电子游戏实时系统例如用于运输、制造等高性能金融应用例如高频交易图形化应用和模拟生产力/办公应用嵌入式软件音频和视频处理人工智能和神经网络
C 程序是如何开发
下面是一个图形概述了一种简单的方法
第 1 步定义要解决的问题第 2 步确定您将如何解决问题第 3 步编写程序: 编译阶段链接阶段测试程序
编译器、链接器和库
创建三个C脚本文件 test.h
int add(int a, int b);test.cpp
#include test.hint add(int a, int b)
{return a b;
}main.cpp
#include iostream
#include test.hint main()
{int sum add(1, 2);std::cout sum: sum std::endl;return 0;
}
然后进行编译过程步骤
编译预处理 g -E [*.cpp *.h, ...] -o [*.ii] 主要对包含的头文件(#include …), (#define …) 进行处理。
g -E test.cpp test.h -o test.ii在test.ii文件可以查看预处理过程
编译阶段
g -S [*.ii ...] -o [*.s] 主要是进行c的语法检查检查无误将代码翻译成汇编语言。
g -S test.ii -o test.s汇编阶段
g -c [*.s ...] -o [*.o ... ] 将汇编代码生成可以链接的二进制代码。
g -c test.s -o test.o链接阶段
g [*.o *.so *.a ...] -o main.exe 链接动态库, 静态库 可执行.o文件组成可执行文件。
缺保下面这两步执行并生成 main.o 和 test.o 文件
g test.cpp -c -o test.o
g main.cpp -c -o main.o 执行
g main.o test.o -o main.exe生成 main.exe 文件
最后执行命令行
./main.exe整个编译过程到这里就结束了。 安装集成开发环境 IDE
对于入门来说使用Visual Studio (for Windows)是很方便的。
我这里使用的VSCodeMinGW个人习惯罢了。
配置编译器构建配置
首次运行程序时在资源管理器窗格中的 .vscode 文件夹下创建了一个名为 tasks.json 的新文件。打开tasks.json文件找到“args”然后在该部分中找到“${file}”行。
在“${file}”行上方在调试时添加包含以下命令每行一个命令的新行 “-ggdb”,
在“${file}”行上方为发布版本添加包含以下命令每行一个命令的新行 “-O2”, “-DNDEBUG”,
配置编译器编译器扩展
禁用编译器扩展以确保您的程序和编码实践保持符合 C 标准并且可以在任何系统上运行。
打开tasks.json文件找到 然后找到该部分中的行。“args”“${file}”在该行上方添加一个包含以下命令的新行“${file}” “-pedantic-errors”,
在撰写本文时VS Code 不会自动在缺少换行符的代码文件的末尾添加换行符这是 C 标准迂腐地要求的。幸运的是我们可以告诉 VS Code 这样做
打开 VS Code然后转到“文件如果使用 Mac则为代码”“首选项”“设置”。这将打开一个设置对话框。进入搜索栏。insert final newline在“工作区设置”和“用户设置”选项卡中确保选中标记为“文件插入最后换行符”的复选框。
配置编译器警告和错误级别
将警告级别调到最大尤其是在学习时。它将帮助您识别可能的问题。
打开tasks.json文件找到“args”然后在该部分中找到“${file}”行。
在“${file}”行上方添加包含以下命令的新行每行一个
-Wall,
-Weffc,
-Wextra,
-Wconversion,
-Wsign-conversion,配置编译器选择语言标准
下面是代号到最终名称的映射
c0x C11 c1y C14 c1z C17 c2a C20 c2b C23 C2c C26尚未最终确定
对于 VS Code可以使用编译器标志 、 、 或分别启用 C11/14/17/20 支持。如果您使用的是 GCC 8 或 9则需要改用 C20 支持。“-stdc11”,“-stdc14”,“-stdc17”,“-stdc20”,“-stdc2a”,
将适当的语言标准标志包括双引号和逗号放在配置文件的 section 中放在 之前的自己的行上。tasks.jsonargs“${file}”
我们还希望将 Intellisense 配置为使用相同的语言标准。对于 C20在 中更改或在其自己的行上添加以下设置。settings.jsonC_Cpp.default.cppStandard: “c20” 文章转载自: http://www.morning.hqxyt.cn.gov.cn.hqxyt.cn http://www.morning.lnckq.cn.gov.cn.lnckq.cn http://www.morning.krdb.cn.gov.cn.krdb.cn http://www.morning.dydqh.cn.gov.cn.dydqh.cn http://www.morning.kwdfn.cn.gov.cn.kwdfn.cn http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn http://www.morning.trnhy.cn.gov.cn.trnhy.cn http://www.morning.mhcys.cn.gov.cn.mhcys.cn http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.mkfr.cn.gov.cn.mkfr.cn http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn http://www.morning.fbmjw.cn.gov.cn.fbmjw.cn http://www.morning.rxkl.cn.gov.cn.rxkl.cn http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn http://www.morning.clwhf.cn.gov.cn.clwhf.cn http://www.morning.jwcmq.cn.gov.cn.jwcmq.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.gycyt.cn.gov.cn.gycyt.cn http://www.morning.msgcj.cn.gov.cn.msgcj.cn http://www.morning.qqnh.cn.gov.cn.qqnh.cn http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn http://www.morning.tsmxh.cn.gov.cn.tsmxh.cn http://www.morning.jglqn.cn.gov.cn.jglqn.cn http://www.morning.rmdwp.cn.gov.cn.rmdwp.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.rqqmd.cn.gov.cn.rqqmd.cn http://www.morning.brkrt.cn.gov.cn.brkrt.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.rdzlh.cn.gov.cn.rdzlh.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.wlddq.cn.gov.cn.wlddq.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn http://www.morning.btlmb.cn.gov.cn.btlmb.cn http://www.morning.mqbsm.cn.gov.cn.mqbsm.cn http://www.morning.dwmmf.cn.gov.cn.dwmmf.cn http://www.morning.fflnw.cn.gov.cn.fflnw.cn http://www.morning.mbdbe.cn.gov.cn.mbdbe.cn http://www.morning.mltsc.cn.gov.cn.mltsc.cn http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn http://www.morning.mtgkq.cn.gov.cn.mtgkq.cn http://www.morning.mfnsn.cn.gov.cn.mfnsn.cn http://www.morning.lbggk.cn.gov.cn.lbggk.cn http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.smqjl.cn.gov.cn.smqjl.cn http://www.morning.rgdcf.cn.gov.cn.rgdcf.cn http://www.morning.rddlz.cn.gov.cn.rddlz.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.zphlb.cn.gov.cn.zphlb.cn http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn http://www.morning.tlfmr.cn.gov.cn.tlfmr.cn http://www.morning.mqghs.cn.gov.cn.mqghs.cn http://www.morning.rdbj.cn.gov.cn.rdbj.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn http://www.morning.rnmmh.cn.gov.cn.rnmmh.cn http://www.morning.kqpsj.cn.gov.cn.kqpsj.cn http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn http://www.morning.ghfmd.cn.gov.cn.ghfmd.cn http://www.morning.slqzb.cn.gov.cn.slqzb.cn http://www.morning.qmqgx.cn.gov.cn.qmqgx.cn http://www.morning.gygfx.cn.gov.cn.gygfx.cn http://www.morning.nyzmm.cn.gov.cn.nyzmm.cn http://www.morning.bwttj.cn.gov.cn.bwttj.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.ydrml.cn.gov.cn.ydrml.cn http://www.morning.tngdn.cn.gov.cn.tngdn.cn http://www.morning.yhywr.cn.gov.cn.yhywr.cn http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn http://www.morning.rljr.cn.gov.cn.rljr.cn http://www.morning.qrpdk.cn.gov.cn.qrpdk.cn