中华商标交易网官方网站网络广告学心得体会如何优化?
摘要:中华商标交易网官方网站,网络广告学心得体会,建设网站的 域名申请的分析,网络购物平台 修改记录 版本号日期更改理由V1.02022-03-15MD化总则 仅总结一些常用且实用的编程规范和技巧,且避免记忆负担&
中华商标交易网官方网站,网络广告学心得体会,建设网站的 域名申请的分析,网络购物平台
修改记录
版本号日期更改理由V1.02022-03-15MD化
总则
仅总结一些常用且实用的编程规范和技巧#xff0c;且避免记忆负担#xff0c;聚焦影响比较大的20% !
编译器
打开全warning编译器开关
正例
gcc -W -Wall -g -o someProc main.c反例
gcc -g -o someProc main…
修改记录
版本号日期更改理由V1.02022-03-15MD化
总则
仅总结一些常用且实用的编程规范和技巧且避免记忆负担聚焦影响比较大的20% !
编译器
打开全warning编译器开关
正例
gcc -W -Wall -g -o someProc main.c反例
gcc -g -o someProc main.c建议增加-W -Wall -g编译器开关
打开-W -Wall 警告开关可以让编译器尽量将代码中的告警进行展示打开-g开关以利于在出错的情况下可以较为准确地获知堆栈信息
持续消除warning
在warning开关全开的情况下应检查warning的情况最好做到零warning。
建议将某些warning转为编译error
可以根据工程特点总结出来一批影响比较大而且容易出现问题的warning直接转化为编译器error选项以利于用编译工具保证质量。有条件的项目编译工程可以通过-Werror将全部warning转为编译error。
正例
gcc -W -Wall -Werroroverflow -g -o someProc main.c或gcc -W -Wall -Werror [-Wno-*...] -g -o someProc main.c即使在-Werror开关的情况下依然可以通过-Wno-*的编译选项进行定制排除将某些影响不大的warning排除 使用高版本编译器 借用高版本编译器往往能够检查出代码中重大隐患和产生更高质量的代码建议在能够使用高版本编译器的情况下尽量使用 建议使用docker构建高版本编译器环境
在docker某基础镜像中加入devtoolset-*组件对于CentOS系列发行版建议安装devtoolset-7或devtoolset-9。这样对于当前旧编译器依赖的工程可以无影响地进行高版本编译编译提前将一些隐患排除。
启动镜像时脚本
docker run -it --rm -h devtoolsetVersion -w /usegccversion -v $PWD:/usegccversion image bash使用高版本编译标准 在低版本编译器中尽量使用高版本编译标准可以使用到某些友好特性和错误检查 获得支持临时循环指示变量临近使用特性
正例
for(unsigned int i 0; i MAX; i)
{ ...
}反例
void f()
{unsigned int i 5;// some other code...for(i0; i MAX; i){...}}gcc编译器可以指定–stdgnu11等一些高版本编译标准。临近使用变量特性将使得封装性更好避免无效的提前干扰有利于阅读代码 建议O2优化标准
编译器优化可以将代码运行性能加速到极致但为了避免一些负优化建议使用与Linux内核一致的O2优化级别。 优化虽在我们仍提倡撰写高质量的代码作为比较好的编译器输入 适当地方使用register变量
C语言支持寄存器变量x86-64上又提供更多的寄存器可用所以在计算校验和等比较密集耗费CPU的场景对于关键变量建议使用register关键词修饰。
编程规范
以人为本
空格间隔操作符与左值右值
正例
void f(int * intPtr)
{if(NULL intPtr){...}...
}反例
void f(int * intPtr)
{if(NULLintPtr){...}...
}以人为本的理念在编程实践时如果对于机器阅读没有困难而对于程序员阅读存在困难的代码都应该通过空格、空行分割、打印日志分割、scope对齐等常用方式进行辅助编码。
