编写C++的基本注意事项(0) — 序言

基于rabbitmq-c的Rabbitmq C++客户端的实现 基于rabbitmq-c的Rabbitmq C++ Client 仅做记录,后续有问题再修改。 阅读详情

编写C++的基本注意事项(0) — 序言


我最开始学编程,是从C++入门的,当时也没有特别挑选这门语言。只是当时大学有门程序设计课,学的就是这个。我第一份工作就是用C++在Windows上开发。后来换工转iOS, 更多的用object-C,只偶然需要一下C++。现在公司转型用cocos2dx开发手机游戏,就回归使用C++了。


我很多同事,有些使用java入门,有些直接就是object-c, 有些是其它语言,之后转cocos2dx。可能是带有之前语言的思路,他们写的程序其实不那么符合C++习惯写法。有些东西,我以为基本的,不用再说的,其实其他语言转过来的也没有怎么注意到。


因此,我想写一些关于C++,需要注意的地方。有些也不单纯是C++的,也可以推广到其它语言。可能是C++有点底层,用这门语言的时候,需多了解计算机科学的方方面面。而一些虚拟机语言,将底层的封装好,屏蔽掉了,用这些语言的人有点被宠惯了。


这里可能有人提出疑问,既然别人将底层,琐碎的封装好了,那为什么还需要知道底层呢。这要看看你的目标是什么了,假如你只是业余的,满足做个代码工人,无啥问题。但假如你想创造一些新的,之前没有的,或者只是因为单纯的好奇心,就会想知道,也应该要知道下面是什么样的。基础的东西是绕不过去的。可能你写程序100天,99天都没有问题,到了第100天,就会冒出个古怪问题,这时候,不懂基础,就算再给你100天,你也解决不了。而求助别人,别人一下子就搞好了,而你也只知这样就可以,但不知为什么可以,只能死记住。这种情况发生多了,不会觉得没有意思吗?


说教的不多讲,之后也不说代码格式之类。代码格式,或者命名习惯,每个公司或者个人都有不同。

C++编码规范 C++编码规范 1 前言本编码规范针对C++语言。制定本规范的目的:提高代码的健壮性,使代码更安全、可靠;提高代码的可读性,使代码易于查看和维护。本文档分别对C++程序的格式、注释、标识符命名、语句使用、函数、类、程序组织、公共变量等方面做出了要求。规范分为两个级别——规则和建议。规则级的规范要求开发人员必须要遵守,建议级的规范开发人员应尽量遵守。各项目组在用C++ 阅读详情

相关推荐

29、核心汇编语言编程:高级技巧与宏的应用

本文深入探讨了汇编语言编程中的高级技巧,重点介绍如何使用宏来简化函数序言和尾声的编写,以及如何利用非易失性寄存器进行高效计算,如数组求和、圆锥表面积与体积计算、人体表面积(BSA)计算等。同时,文章详细分析了函数调用中的栈布局管理、与C++库函数的交互方式,并通过多个示例展示了汇编代码的结构、执行流程与运行结果。通过这些内容,读者可以掌握编写高效、稳定且可维护的汇编代码的方法。

o4p5q6r7s的博客 65

C++ 编写类文件的时候,需要注意的问题

原博文链接在我的官方网站,网址是:http://www.aobosir.com/blog/2017/02/07/cpp-cmake-aux_source_directory/一段时间不编写程序了,基本上都忘记了。今天我来介绍一下:当我们编写类文件的时候,需要注意的问题:比如,我现在写了pairAlgin.hpp文件 和 pairAlgin.cpp文件。我在pairAlign.hpp文件里面class

AoboSir.com 3566

EMC案例:解决千兆网口RTL8211F EMI问题

摘要:本文分析了Amlogic S812平台OEM项目中RTL8211F-CG千兆网卡EMI辐射超标问题。发现百兆测试时25MHz时钟有3dB余量,但千兆125MHz时钟导致超标。问题根源包括:未关闭PHY芯片悬空CLKOUT引脚、TX/RXCLK端RC位置错误、包地不完整及参考地缺失。解决方案涉及软件关闭无用时钟、优化RC布局、加强包地与打孔、调整共模电感位置,并在HDMI 3.3V加磁珠。关键结论指出千兆网125MHz时钟需严格包地打孔,且RC取值需平衡EMI与通信性能。

电子绿洲的博客 1277

数据结构1 C++类的编写的注意事项

int main(){ Line line(10.0); cout<<" "<<line.getLength()<<endl; line.setLength(6.0); cout<<" "<<line.getLength()<<endl; return 0;};注意主函数中需先声明lin...

diyesu4243的博客 187

Ethercat学习-从站源码生成

移植平台GD32F450,从站芯片AX58100

西澳峰的博客 9214

SkyWalking跨线程Trace传递实战:手把手教你用RunnableWrapper解决异步链路中断问题

本文深入解析了SkyWalking在异步编程场景下链路追踪中断的根源,并提供了使用RunnableWrapper等官方包装类的实战解决方案。通过详细的原理解析和代码示例,手把手指导开发者如何实现跨线程的Trace传递,确保分布式系统监控链路的完整性,有效解决异步任务导致的链路中断问题。

sand8的博客 493

c++注意事项

1.malloc不能调用构造函数  new可以,new和delete是运算符,而malloc和free是标准库函数,delete可以调用析构函数,而free不可。 2.指针数组和数组指针 int * a[4]:是指a数组里面的元素都是指针 int (*a)[4]:是指,a是个指针,指向长度为4的数组。 3.不能重载的运算符:?:   *   .*   ::  . 。 4.

wxwjiayou的博客 1588

ROS学习【11】-----基于ubuntu16.04上Gazebo机器人环境搭建的传感器仿真(camera、kinect、Lidar),并通过Rviz进行数据显示

ROS学习-----基于ubuntu16.04上Gazebo机器人环境搭建的传感器仿真目录一、Gazebo环境搭建前的准备1、将搭建模型下载到我们的gazebo环境下2、升级我们的gazebo版本二、创建配置launch文件参数的world文件1、进入工程包mbot_gazebo2、创建文件夹worlds3、进入该文件夹4、创建playground.world文件5、创建room.world文件三...

qq_42451251的博客 3606

C++编程注意事项总结

(1)使用迭代器(属于STL)时: 注意头文件引用   #include&lt;iterator&gt;  istream_iterator&lt;int&gt; i1(cin), i2;  //建立一对输入流迭代器 注意:在屏幕上输入一串整数后,以Ctrl+z 来结束输入。 (2)待续 ...

lyy_graduate的博客 650

FC7300 SPI MCAL配置引导

Example - QMI8A01z外设:Example - QMI8A01z外设:

舊梦的博客 257

LLC变压器,常见的4大问题解决方案

其中之一是当付边的绕组的匝数或层数较多的时候,层间或匝间寄生电容和付边的漏感发生一个寄生的振荡,轻载的时候,这个振铃的幅度会达到很高,导致输出电压比设计的要高许多。但当输入是低压的时候,开关频率比较低,LLC谐振回路的增益较大,因而比较容易发生变压器饱和的问题。由于LLC变压器工作在LC谐振状态,LC谐振回路有个特点就是Q值问题,在这里Q值是大于1的,因而就会有实际加在变压器上的电压要比输入电压高的问题,因而在设计变压器的时候就必须考虑到这一点,否则变压器就不是工作在你设计的磁感应强度上。

1260

10 C++函数编写注意事项

#define _CRT_SECURE_NO_DEPRECATE //兼容C的标准格式 #include<iostream> //1.c++函数模块 using namespace std; void print(int times); int main() { print(3); system("pause"); } //注:避免使用cout,应该使用std::cout.便于在其...

lj1986817902的博客 351

华为OD机试:查找接口成功率最优时间段 (C/C++/Py/Java/JS/GO)

华为OD机试双机位C卷 查找接口成功率最优时间段,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。

qq_45776114的博客 4686

c语言截尾的方式,关于c ++:C中的函数序言和结尾

我知道嵌套函数调用中的数据会进入堆栈。堆栈本身实现了一种逐步方法,用于在函数被调用或返回时从堆栈中存储和检索数据。这些方法的名称最著名的是Prologue和 结语。我尝试搜索有关此主题的材料没有成功。 你们是否了解有关函数序言和尾声在C语言中通常如何工作的任何资源(网站,视频,文章)? 或者,如果您能解释会更好。附注:我只想提供一些一般性的看法,而不是太详细。您可以搜索有关编译器和代码生成的材料。...

weixin_32081953的博客 688

【深度学习新浪潮】近三年垂域大模型研究与产品进展全景洞察(2022-2025)

近三年来,垂域大模型完成了从技术探索到产业落地的关键跨越,在多个行业实现效率提升与价值创造。面对数据治理、技术适配、生态建设等挑战,未来需要通过技术创新、标准制定、人才培养等多维度发力,推动垂域大模型向更高效、更可靠、更普惠的方向发展。随着"人工智能+"行动的深入推进,垂域大模型将成为数字经济与实体经济深度融合的核心驱动力,为产业智能化升级注入持续动能。

专注:太空算力、AI infra、异构调度、大模型成本工程 786

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《DirectX 9.0 3D游戏开发编程基础》 学习笔记#0 序言

  这一系列的笔记将结合教材《DirectX 9.0 3D游戏开发编程基础》,也就是人们常说的龙书,介绍DirectX 9.0 (后文简称D9)常用的基础知识,并记录学习过程中遇到的一些问题。 1.为什么是D9而不是D11?   DirectX是微软公司制作的一套底层图形API (应用程序编程接口),借助它,可以利用硬件加速功能绘制3D场景,被广泛应用于MicrosoftWindo...

HWCJ6630的博客 429

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C++中函数重载

文章目录序言基本认识重载示例如何使用函数重载名称修饰 序言 函数重载是C++在C语言基础上新增的特性,函数重载指的是可以有多个同名的函数,这就像你可以在学校以一个学生的身份读书,也可以在家以一个子女的身份帮爸妈干活。函数重载有着十分重要的意义,下面是其中几点: 试想如果没有函数重载机制,如在C中,你必须要这样去做:为这个print函数取不同的名字,如print_int、print_string...

Shijia Yin 406

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

深入解析Cpp2IL:逆向IL2CPP Unity游戏的核心原理与实践

在软件逆向工程与游戏安全领域,理解托管代码到原生代码的转换机制是核心技术之一。其原理在于分析编译器如何将高级语言结构(如类、方法)转换为底层机器码,同时保留或重构必要的元数据信息。这项技术的核心价值在于能够穿透代码混淆与优化,恢复出可分析的逻辑结构,对于漏洞挖掘、安全审计、游戏模组开发及性能优化至关重要。应用场景广泛覆盖移动应用、游戏客户端分析与安全加固。本文聚焦于Unity引擎中广泛使用的IL2CPP技术栈,通过剖析Cpp2IL这一关键工具,详细阐述如何从编译后的二进制与元数据文件中逆向恢复出原始的.NE

weixin_30732487的博客 471

1.1 从0开始学Unity游戏开发--序言

新开了一个专栏来写一些游戏开发的教程文章,写这些文章的初衷是教会我老婆做游戏开发,我老婆也是个程序员,我也是几年前才开始转向游戏开发方向,在学习的过程中即使拥有多年普通客户端的开发经验,也仍然感觉到自己一个人琢磨去学习的难度曲线很高,中间在公司内部出过一些基础教程文章,还是比较受欢迎,因此也间接的促成了我想要开设这样一个专栏专门系统的功利的讲一下如何学习游戏开发。所以如果是完全没程序开发基础的人的话,不能期望文章会对所有细节面面俱到,提供的代码可以直接ctrl c+v就能直接跑。

仰望星空 236

C++ auto详解以及常见使用场景

序言:在C++11引入的关键字auto用于进行类型推导,即根据变量的初始化表达式自动推断变量的类型。使用auto关键字可以简化代码并提高代码的可读性。

weixin_43830176的博客 5543

c++编码规范

目录 0. 序言 1. class编写过程中的注意事项 2. 带指针的类 0. 序言 工作的需要,最近在接手一个C++项目。自己在校学习期间,因为懒惰,对于C++这样的巨型语言,是能躲就躲的,因此学的一知半解,导致现在工作时的无能为力。但是,指责所在,躲无可躲,只能做一些...

weixin_30908941的博客 164

C++中的类型转换

编程时,无论是对基本数据类型的处理,还是在复杂类层次结构中的对象操作,类型转换都不可避免。很多时候,我们都是使用默认的隐式类型转换的方式,这种方式很多时候不是那么安全。这篇文章中,将全面的介绍类型转换 --- 隐式转换和显式转换,让我们开始

BUG制造机的博客 1188

【信奥赛·C++基础语法】CSP-J C++ 函数

在 C++编程中,函数是构建复杂程序的基石。它们允许我们将程序分解为可管理的模块,提高代码的可读性、可维护性和可重用性。无论是执行简单的计算还是处理复杂的业务逻辑,函数都发挥着至关重要的作用。

大事龙 928

C++核心笔记

对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器会提供编译器提供的构造函数和析构函数是空实现。3.当子类与父类拥有同名的成员函数,子类会隐藏父类中同名成员函数,加作用域可以访问到父类中同名函数。代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可。问题:当子类与父类出现同名的成员,如何通过子类对象,访问到子类或父类中同名的数据呢?1.羊继承了动物的数据,驼同样继承了动物的数据,当草泥马使用数据时,就会产生二义性。

2301_79866936的博客 261
上一篇: pdf格式分析(1) -- 文本和二进制混排
complex_ok
博客等级 码龄17年 71粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值