条款4:尽量使用c++风格的注释

C:错误: C++ style comments are not allowed in ISO C90 错误 memory.c:1:12: error: initializer element is not constant memory.c:1:23: error: C++ style comments are not allowed in ISO C90 char *d = malloc(-1);//1000); ^ memory.c:1:23: error: (this will be reported only once per input file) 阅读详情

即尽量用// 而不是/* */

旧的c注释语法在c++里还可以用,c++新发明的行尾注释语法也有其过人之处。例如下面这种情形:

if ( a > b ) {
        // int temp = a;       // swap a and b
        // a = b;
        // b = temp;
}

用c++形式的句法来注释掉这个程序块时,嵌在里面的最初的注释不受影响,但如果选择c风格的注释就会发生严重的错误:

if ( a > b ) {
        /*      int temp = a;  /* swap a and b */
               a = b;
               b = temp;
        */
}

c风格的注释当然还有它存在的价值。例如,它们在c和c++编译器都要处理的头文件中是无法替代的。尽管如此,只要有可能,你最好尽量用c++风格的注释。

值得指出的是,有些老的专门为c写的预处理程序不知道处理c++风格的注释,所以象下面这种情形时,事情就不会象预想的那样:

#define light_speedp 3e8       // m/sec (in a vacuum)

对于不熟悉c++的预处理程序来说,行尾的注释竟然成为了宏的一部分!当然,正象条款1所说的那样,你无论如何也不会用预处理来定义常量的。

Docker网络教程(四)macvlan 网络教程 在这种网络下,Docker 宿主机在它的IP之上,允许接受多个 MAC 地址的请求,然后再将这些请求路由至对应的容器里。流通,Docker 会用它的 MAC 地址,把流量路由进你的容器里。对于网络上的网络设备来说,你的容器似乎是物理上连接到网络上的。),Docker使用其MAC地址将流量路由到你的容器。对于网络上的网络设备来说,你的容器似乎是物理上连接到网络上的。你需要 3.9 或者更高版本的 Linux 内核,4.0 以及以上的版本是更好的。如果你的设备叫别的名字,用对应的名字代替。 阅读详情

相关推荐

从零搭建A股量化交易系统:开源框架选型与实战部署指南

本文详细介绍了从零搭建A股量化交易系统的完整流程,重点分析了开源框架VNPY和QMT的选型与实战部署。内容涵盖系统架构设计、策略开发、性能优化及实盘过渡方案,为开发者提供了一套完整的A股实盘量化交易解决方案,助力高效构建稳定可靠的量化交易系统。

sugar的博客 1270

错误:ISO C++ 不允许声明无类型的‘ContactsItem’ 错误:expected ‘;’ before ‘*’ token

刚刚遇到个问题,貌似不是第一次遇到了,在这里记录一下。 编译错误提示: GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/includ

Gfeng168的专栏 3639

Multisim14.3主数据库访问冲突:Windows更新KB5065426卸载与系统兼容性修复指南

本文针对Multisim14.3在Windows更新KB5065426后出现的主数据库访问冲突问题,提供了详细的解决方案。通过卸载问题更新、修复系统兼容性及调整权限设置,帮助用户快速恢复元器件库的正常访问,确保电路仿真设计的连续性。

lstm7chronicler的博客 509

ISO C90 不允许混合使用声明和代码

检查一下,把那些个定义声明丢到最顶行

qq_31104463的博客 1932

MPLAB修改工程名称方法

修改工程名称方法 如下图所示,工程名称为:Loar_V1.0_20210205 现将该工程名称修改为:Loar_V1.1_20210205 修改方法: ①找到工程文件路径,将工程名称修改为Loar_V1.1_20210205 注意:此时打开变成进行编译,会报错:Loar_V1.1_20210205.production.hex does not exist or is not an executable, ②找到工程下的 nbproject 文件夹 ③将nbproject文件夹下的文件全部打开,并且将

qq_26195179的博客 1759

游戏大厂状态同步与帧同步技术全解析——让虚拟世界万物协同的“时间齿轮”

本文深入解析了大厂游戏开发中的两种核心同步技术:状态同步和帧同步。状态同步适合大型MMO和FPS游戏,由服务端计算并广播世界状态;帧同步则通过统一操作输入实现MOBA和RTS游戏的绝对公平。文章详细比较了两者的差异、适用场景和底层实现原理,并揭秘了《王者荣耀》《PUBG》等热门游戏的同步机制。同时探讨了本地预测、延迟补偿、防作弊等关键技术,以及未来AI和云游戏带来的同步新挑战,为开发者提供了全面的技术参考和实践指南。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 917

【转】gcc编译错误表

conversion from %s to %s not supported by iconv” iconv 不支持从 %s 到 %s 的转换” iconv_open” iconv_open” no iconv implementation, cannot convert from %s to %s” 没有 iconv 的实现,无法从 %s 转换到 %s” character 0x%l

wdt3385的专栏 5279

简要介绍 | 两阶段点云目标检测:理论与实践

目标检测是计算机视觉中的一个重要任务,其目的是识别和定位图像中的物体。对于二维图像,这已经有许多有效的方法。然而,对于三维数据(如由LiDAR生成的点云数据),目标检测则更为复杂。

NLOS的博客 1306

Effective C++:条款4:尽量使用c++风格的注释

旧的c注释语法在c++里还可以用,c++新发明的行尾注释语法也有其过人之处。例如下面这种情形: if ( a > b ) { // int temp = a; // swap a and b // a = b; // b = temp; } 假设你出于某种原因要注释掉这个代码块。从软件工程的角度看,写这段代码的程序员也做得很好,他最初的代码里也写了一个注释,以解释代码在做什么。用c+

IT民工 1168

【OpenClaw从入门到精通】第45篇:Skill供应链安全——如何识别并避开恶意技能插件?(2026实测版)

随着OpenClaw生态爆发式增长,全球Skills总量近75万个,日均新增2.1万个,但恶意/问题插件已超600个,数十万用户受影响。本文基于奇安信威胁报告及360安全实践,拆解恶意技能的五大核心特征,提出"安装前三步法"安全审查流程,详解安全技能来源白名单与定期审计方案,并深度解析360龙虾Skill安全超市的分级认证机制。读者可掌握从技能筛选、安装审查到术后审计的全流程安全防护手段,通过实操命令与案例演示,零成本构建Skill供应链安全防线,避免遭遇私钥窃取、资产损失等安全事件。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 561

大语言模型在金融风险预警中的推理应用探索

金融行业一直面临着各种风险,如信用风险、市场风险、操作风险等。准确及时的风险预警对于金融机构的稳定运营和投资者的利益保护至关重要。传统的金融风险预警方法主要基于结构化数据和统计模型,虽然在一定程度上能够识别风险,但对于非结构化数据的处理能力有限,难以捕捉到复杂的风险因素和潜在的风险趋势。大语言模型作为自然语言处理领域的重要突破,具有强大的语言理解和生成能力,能够处理各种形式的文本数据。

AI天才研究院 1167

条款4:尽量使用C++风格的注释形式

1,抛弃"/*...*/",改用"//"

wyjvip333的专栏 155

044.树莓派4B部署YOLO:从系统烧录到模型运行

《树莓派4B部署YOLOv8实战笔记》摘要:本文详细记录了在ARM架构树莓派4B上部署YOLOv8的全流程。关键点包括:必须使用64位系统并手动编译OpenCV(禁用FFMPEG、开启NEON优化);模型需在x86转换为TFLite格式(分辨率不超过320×320);推理代码使用tflite_runtime替代TensorFlow以减少内存占用;针对USB摄像头卡顿、内存泄漏等典型问题给出了解决方案。

2603_95664987的博客 169

Effective C++ 2e Item4

条款4:尽量使用C++风格的注释旧的C注释语法在C++里还可以用,C++新发明的行尾注释语法也有其过人之处。例如下面这种情形:    if ( a > b ) {      // int temp = a;    // swap a and b      // a = b;      // b = temp;    }假设你出于某种原因要注释掉这个代码块。从软件工程的角度看,写这段代码的程

lostmouse的专栏 1080

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

改善C++ 程序的150个建议学习之建议22:灵活地使用不同风格的注释

建议22:灵活地使用不同风格的注释 注释,可以说是计算机程序中不可或缺的一个部分,它的存在让我们阅读程序代码、理解作者意图变得相对容易(当然,这里说的是具有良好注释的代码)。在C/C++语言中,存在着两种不同的注释语法: 旧有的C风格的注释:     /* describe your purposes */ 新式的C++风格的注释: // describe your purposes 既然

CodingAdo 930

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

条款3,4:尽量用new和delete而不用malloc和free 尽量使用c++风格的注释

说明:malloc和free没有相应的构造函数,内部实现过于简单,概况如下: malloc的时候不能根据类型初始化对象,这样就会出现潜在的风险,但是new函数调用构造函数,这样在创建对象的时候,每个对象都构造好,可以放心的调用操作。 free()函数也不调用析构函数,如果里面的对象自己分配了内存,这些内存会全部丢失。 还需要注意的是,malloc和free成对出现,new和delete成对出

sky200543012的专栏 761

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Effective C++ 50条款

Effective C++ 50条款 条款 1:尽量用 const 和 inline 而不用#define——尽量用编译器而不用预处理 #define max(a,b) ((a) > (b) ? (a) : (b)) 条款 2:尽量用而不用<stdio.h> 条款 3:尽量用 new 和 delete 而不用 malloc 和 free malloc 和 free(及其变...

Mr.Andy的博客 527

effective c++条款总结

条款1:尽量用const 和inline 而不用 #define 条款2:尽量用 而不用 条款3:尽量用new/delete 而不用malloc/free 条款4:尽量使用c++风格注释 条款5:对应的new和delete 都要采用相同的形式 条款6:析构函数里对指针成员调用delete条款 条款7:预先准备好内存不够的情况 条款8:写operator new与operator d

qq_37185716的博客 478

Effective C++都有哪些条款

     其实很早以前就学了Effective C++,今天又看了下下,但是很难记住,或者说很容易忽略一些条款。so,我感觉有必要把条款在列出来一遍,呵呵,帮助自己记忆。当然,最重要的还是多多的实践,在项目中多多使用,多思考,相信自然在使用的时候就游刃有余了。 条款1:尽量用const 和inline 而不用#define条款2:尽量用而不用条款3:尽量用new 和delete 而不用ma

Laiger001的专栏 858

Effecive C++ 解析3

来源: 本文主要参考书籍 Effective C++ 转载请标明出处(尊重原创,谢谢!) 前面的  Effecive C++ 解析中分别:Effective C++ 解析 1 说明了条款 3 和 5  ,Effecive C++ 解析2:说明条款1 和 条款2 Effecive C++ 解析3: 将介绍条款 4 和6 条款4:尽量使用 C++风格的注释 原因 1:c 

SelfImprovement 1375

Effective C++ 第二版 3)new/delete和malloc/free 4)C++注释

条款3: 尽量用new和delete而不用malloc和free malloc和free不调用构造和析构函数; e.g. 给一个包含 10 个string 对象的数组分配空间 1 2 string *stringArray1 = static_cast(malloc(10 * sizeof(string))); string

Fix it 1212

嵌入式 C 编码风格

嵌入式 C 编码风格 版本 日期 作者 备注 V1.0 2019.09.16 Like Shadows 初版 文件头 所有新建的文件,都必须在最开始声明 Project 的许可条款。 对于从其它地方拷贝的文件,如果有许可条款声明,则应保留。 Project 的许可条款示例如下: /* * Copyright [2019] [xxxx Co., Ltd] * * ...

LikeShadow 362
上一篇: 条款3:尽量用new和delete而不用malloc和free
下一篇: 条款5:对应的new和delete要采用相同的形式
生无涯
博客等级 码龄16年 62粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值