C++笔记(四)

BeckHoff <--> ABB 机器手 Profinet 通讯 本文介绍了BeckHoff PLC与ABB机器人通过PROFINET通信的实现方案。主要内容包括:1)通信接口的详细变量定义,涵盖输入/输出信号、设备状态监控、夹爪控制等关键功能位;2)全局数据结构和变量配置说明;3)机器人任务控制程序的实现方法,包括参数校验、任务指令下发和状态监控机制;4)重点分析了任务调度功能块的代码逻辑,涉及慢速模式处理、多参数配置和执行状态判断。该方案通过结构化变量定义和模块化程序设计,实现了PLC对机器人作业的精确控制,为工业自动化系统集成提供了可靠通信范例。 阅读详情

(1) union(共用体)对内存要求特别严格的地方,union会频繁出现,在union中,各成员共享一段内存空间

     一个union变量的长度等于各成员中最长的长度。

     共享:指该共用体变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。

     anonymous union(匿名共用体):共用体没有任何类型和变量名。

void main() {
	union {
		int i;
		float j;
	}
	i = 12;
	j = 1.22f;
}

(2) default arguments (C不支持)
     ①默认参数只可在函数声明中设定一次
     ②如果一个参数设定了缺省值时,其右边的参数都要有缺省值
     ③默认值可以是全局变量、全局常量、函数,但不能是一个局部变量

(3) placeholder argument(占位符参数) C不支持
     ⓵占位符参数调用必须为占位符提供一个值
     ⓶占位符参数目的是可以修改函数定义而不需要修改所有的函数调用
     ⓷当含占位符参数函数作为接口时,后期使用此占位符,接口不变


(4) magic number

     float radius = 3.0f; float perimeter = radius*3.14;

     没有特别说明3.14这个数字很魔幻,导致代码可读性差,修改不方便。

     应该将其定义为常量、枚举类型或宏定义,不要在代码中直接使用特定的数值。

     特定情况下,可用于观察和调用程序中出现的错误。0xcdcd是微软C++ Debug运行库为没有初始化的堆内存所做的标记;0xcccc是为未初始化的栈内存所做的标记。


(5) Aggregate(聚合体)

     ⓵最大的特点是可以直接使用{}括起来的初始化列表进行初始化,不能有用户自定义的构造函数,不能有private和protected权限,不能有基类和虚函数。

     ⓶未知大小的数组可以用包含n个元素的初始化列表初始化。例如:int x[] = {1, 2, 3};

     ⓷结构的Aggregate中如果包含静态成员变量,在初始化列表中不考虑该变量。

struct A {
	int i;
	static int s;
	int j;
} a = {1, 2};//这里初始化的是a.i和a.j

     ⓸初始化列表中的元素的个数少于Aggregate成员的个数,未明确指出的Aggregate成员将被默认初始化。

     ⓹出事化列表可以初始化union,但只能初始化其第一个元素。

【CarMaker实战指南】从零构建环形测试场景与车辆连续仿真 本文详细介绍了如何使用CarMaker软件从零构建环形测试场景与实现车辆连续仿真。通过分步指导搭建闭环道路、连接交叉路口、规划车辆轨迹等核心操作,帮助用户掌握CarMaker的基础应用技巧,并提供了常见问题排查与进阶优化建议,适用于车辆耐久性测试和自动驾驶算法验证等场景。 阅读详情

相关推荐

Unity地形数据高效转换:从Terrain到3DMAX的OBJ导出实战

本文详细解析了Unity地形数据无法直接导入3DMAX的原因,并提供了高效转换的实战方案。通过编写自定义编辑器脚本,将Unity Terrain的高度图数据“烘焙”为静态网格模型,并以OBJ格式导出。文章重点讲解了核心代码逻辑、分辨率选择对模型精度的影响,以及在3DMAX中导入和优化模型的实用技巧,旨在打通Unity与3DMAX之间的数据协作壁垒。

sky77的博客 449

C++11实现placeholder

文章分析如何在C++11中实现简单的placeholder。

baihacker的专栏 6947

手把手教你用非晶纳米晶磁环DIY信号注入变压器(附LOTO示波器测试全流程)

本文详细介绍了如何利用非晶纳米晶磁环DIY高性能信号注入变压器的全流程,包括材料选型、双绞线绕制工艺及LOTO示波器频响测试。非晶纳米晶磁环展现宽频响、高磁导率等优势,配合专业测试方法,可实现低成本制作媲美商用产品的信号注入变压器。

q3r4s5t的博客 784

C++编程基础笔记章节四

截图:

虎哥的代码人生 342

从零到一:Gromacs伞形采样的实战避坑指南

本文详细介绍了Gromacs伞形采样技术的实战应用与避坑指南,涵盖核心原理、环境准备、参数设置、数据分析及性能优化等关键环节。特别针对蛋白质-配体结合自由能计算等典型应用场景,提供了弹簧常数设置、采样窗口间距等实用参数建议,帮助研究人员高效完成分子动力学模拟。

weixin_29243279的博客 517

AWS 小白书 [1] 全球架构

小白应该知道的 AWS 知识

boshansolo的博客 707

Cpp学习笔记四

C++学习笔记四 一览: 自动对象、静态局部对象 内联函数 类的成员函数、构造函数 自动对象、静态局部对象 自动对象:只有当定义它的函数被调用时才存在的对象称之为自动对象 自动对象,包括形参,都在定义它们的块语句结束时撤销 静态局部对象:就是C语言里面的static变量 内联函数 使用方法:加上inline关键字 优点:避免函数调用产生的开销 内联函数应当在头文件中定义 缺点:不好debug 成员函数 成员函数的函数原型必须在类中定义 成员函数的函数体既可以在类中定义也可以在类外定义 成员函数的定义 类

私のBookShelf 134

从零开始:在Windows WSL中搭建Openfoam7+blastfoam2.0.0开发环境(避坑大全)

本文详细指导在Windows WSL中搭建OpenFOAM 7与BlastFOAM 2.0.0开发环境,重点解析了安装过程中的常见“坑点”,如编译模式不匹配导致的符号错误,并提供了从系统准备、软件部署到环境验证的完整解决方案,帮助开发者高效构建CFD与爆炸模拟开发平台。

stem5的博客 527

C++学习笔记(四)

这篇C++学习笔记涵盖了编程基础到进阶知识的系统性内容,主要分为三大部分:基础篇包括编译过程、命名空间、程序结构和数据类型;进阶篇深入讲解了内存管理、指针、const修饰符、枚举和类型转换;高级篇涉及预处理指令、运算符重载和底层操作。笔记特别强调了类型转换的隐式/显式区别、指针与内存操作技巧、位运算的实用案例,以及sizeof运算符的编译时特性。通过对比表格和代码示例,清晰呈现了C风格与C++风格类型转换的关键差异,以及逻辑运算符与位运算符的本质区别。内容编排由浅入深,既包含基础语法要点,也覆盖了函数指针、

ShangguanLuli的博客 1217

c++ pcl点云处理(2025 长期更新)

目录1.常用的点云文件2.认识点云的文件格式3.点云的数据结构4.输入输出(IO)5.KD树6.Oc树(八叉树)7.点云可视化8.点云滤波9.点云拟合分割10.点云与图像11.特征点与特征描述及提取12.点云配准13.点云曲面重建

twnkie的博客 2259

CloudCompare 和 PCL:点云网格化分析与处理

点云网格化是将点云数据转化为规则网格的过程,其主要思想是将离散的点云投影到一个平面上,然后对该平面进行划分,形成一系列小区域。在点云网格化方面,PCL 提供了各种算法和工具,可以实现高效的点云网格化操作。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化算法参数,如搜索半径和最大三角形边长等,执行了网格化操作,最后将网格化结果保存到输出文件中。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化参数,如分辨率等,执行了网格化操作,最后将网格化结果保存到输出文件中。

TechPulseZ的博客 1296

C++学习笔记四

为了定义结构,必须使用struct语句,struct 语句定义了一个包含多个成员的新的数据类型。} book;

m0_67400176的博客 901

【Altium designer】BOM导出 Bill of Materials 如何自定义格式

【Altium designer】如何自定义BOM导出格式 我们用Excel做一个xx.xlt的2003的模版文件,取文件名为:AltiumDesiger PCB BOM Template.xlt 将AltiumDesiger PCB BOM Template.xlt文件存放在:AltiumDesiger 安装目录的Template文件夹内

夜半少年的博客 2718

C++笔记④1122

内存分区、函数

m0_59363520的博客 379

老版QQ原生表情gif动态

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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++笔记(四)【函数】

C++笔记函数(typora上笔记保存用)

qq_50031809的博客 345

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C++ 笔记(四)

指针和数组        指针是C/C++的精华,但在使用时也是一个一个比较让人头痛的问题,在我平时写程序过程中,指针也是产生问题最多的地方。依照书本,来记录一些指针和数组的重点。        C++语言应尽量使用vector和迭代器类型,应避免使用低级的数组和指针,涉及良好的程序只有在强调速度时才在类实现的内部使用数组和指针。因此要向成为一个真正的C++程序员就要多使用vector和s

zhckf的专栏 397

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

施磊老师c++笔记(四)

运算符重载相关, 对象池应用

weixin_65612492的博客 923

C++11笔记四

:for_each/find_if/sort/partition/remove_if等,使用方便; #include <iostream> #include <string> using namespace std; template <typename T> int funcAdd(T t1, T t2) { return t1 + t2; } template <typena

干煸四季豆 194

C++笔记四:友元

友元 friend             有时候你需要访问一个类的所有成员,而这种访问方式在逻辑上又不是被访问类的接口。你也不希望破坏类的权限机制。比如你希望能给你的宠物对象取名字(宠物是不会自己取名字的),你又不希望其他人能给你的宠物取名字。这时候友元机制就出来了。你可以在宠物类中指定主人类、你的好友类为友元。只让他们可以访问宠物类的名字属性。还有被重载的操作符,经常需要访问类的私有数据,这

勤能补拙 1518

C++复试笔记(四)

重载指的是在一个类中可以创建多个方法,它们具有相同的名字但参数列表不同(参数的数量、类型或顺序)。返回类型可以相同也可以不同,但仅仅改变返回类型而不改变参数列表不会构成方法重载。特点:发生在同一个类内部;方法名相同但参数列表不同。目的:增加函数的灵活性,允许以不同的方式调用同名的方法。public:// 方法重载:两个整数相加// 方法重载:三个整数相加// 输出: 8// 输出: 10return 0;当子类定义了一个与父类静态方法同名的静态方法时,称作方法的重定义或隐藏。

D2460596421的博客 782

【C++】学习笔记[四]

文章目录一、Linux和Windows的区别二、Linux内核版本和发行版本三、Linux的目录结构四、Linux系统文件类型与文件权限五、Linux常用命令六、Linux系统上C程序的编译与调试七、Linux系统上的库文件生成与使用八、进程 一、Linux和Windows的区别 Linux主要使用命令行操作系统,Windows是图形化界面 Linux主要应用于服务器,Windows是个人操作系统 Linux属于开源项目,而Windows不开源 Linux是多用户系统,Windows是单用户系统 二、L

csdn_edition的博客 257

C++学习笔记(四)(结构体)

本笔记主要来源于教程https://www.bilibili.com/video/av41559729?p=1 8 结构体 8.1 结构体基本概念 结构体属于用户自定义的数据类型,允许用户储存不同的数据类型 8.2 结构体定义和使用 语法 struct 结构体名{结构体成员列表}; 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct 结构体名 变量名={成员1值,成员...

qq_40694605的博客 460

C++ primer plus读书笔记(四)

公有派生 使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。 可以使用初始化列表语法指明要使用的基类构造函数,否则将使用默认的基类构造函数。 基类指针或引用可以指向或引用派生类对象,但基类只能使用基类的方法。但不可以将基类对象和地址赋给派生类引用和指针。 如果没有使用关键字virtual,程序将根据引用类型或指针类

Andy.Wang的博客 452

Effective C++ 学习笔记 《四》

Item 4: Make sure that objects are initialized before they’re used 这一节谈论的就是C++的初始化问题。这也是学习C++的时候容易犯错的地方。 比如下面这段代码,类Point中的x和y就是未初始化的,所以打印得到的值是没有意义的。 class Point { public: inline int getx() { retur...

Teee 195

cpp学习笔记(四)

第22章 理解函数对象 第23章 STL算法 第24章 自适应容器:栈和队列 第25章 使用STL位标志第22章 理解函数对象 函数对象的概念 将函数对象作为谓词 如何使用函数对象实现一元和二元谓词第23章 STL算法 了解算法的分类:变序算法和非变序算法 非变序算法 计算cout cout_if 搜索 search,search_

逐梦如风-毕康 467
上一篇: 泛化之美--C++11可变模版参数的妙用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值