【C/C++】知识点笔记
1 - 联合体内嵌结构体初始化赋值
union {
struct {
int i;
float f;
char *p;
};
int o;
} obj3 = { 1, 2.2, "sk", 4, 9 };
printf("struct inlay union: %d, %f, %s, %d\n", obj3.i, obj3.f, obj3.p, obj3.o);
输出:
struct inlay union: 1, 2.200000, sk, 1
说明:
a. 在union中,所有的成员共享同一块内存空间。这意味着,在任何给定的时间,只有一个成员可以持有值。在上述代码中,union的初始化是匿名的,所以是对其第一个成员(一个struct)进行的。因此,o成员并没有被初始化
b. 若要o成员生效,就需要显示初始化,即 obj3 = { 1, 2.2, "sk", .o=4, 9 };
c. 初始化成员个数超过定义的成员个数,则超出的赋值会忽略,但还是建议按个数赋值
2 - C/C++内嵌汇编
Using Assembly Language with C (Using the GNU Compiler Collection (GCC))
__asm__ __volatile__(
"assembly code"
: output operands // 输出操作数
: input operands // 输入操作数
: clobbered registers // 受影响的寄存器列表
);
__asm__ __volatile__(
"str sp,[%0] \n"
"bx lr \n"
:
: "r"(®s), "r"(sp_saved)
: "r0"
);
说明:
a. str sp,[%0]:表示将寄存器sp中的值存储到内存地址[%0]中。[%0]是通过第一个输入操作数®s指定的内存地址。
b. bx lr:表示执行跳转到寄存器lr所指向的地址,\n 分割汇编指令。
c. : "r"(®s), "r"(sp_saved):这是输出操作数和输入操作数的部分。
c.1 "r"(®s):表示将®s的地址存储到一个寄存器中,供汇编代码使用。
c.2 "r"(sp_saved):表示将sp_saved的值存储到另一个寄存器中,供汇编代码使用。
d. : "r0":这是受影响的寄存器列表,表示在内嵌汇编代码执行过程中可能会修改寄存器r0的内
【C/C++】知识点笔记的更多相关文章
- Python 入门必学经典知识点笔记【肯定有你不知道的】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:实验楼 Python 作为近几年越来越流行的语言,吸引了大量的学员开始学 ...
- [新手必备]Python 基础入门必学知识点笔记
Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...
- Java 多线程与并发【知识点笔记】
Java 多线程与并发[知识点笔记] Java多线程与并发 先说一下线程与进程的由来: 在初期的计算机,计算机只能串行执行任务,并且需要长时间的等待用户的输入才行 到了后来,出现了批处理,可以预先将用 ...
- asp.net、mvc、ajax、js、jquery、sql、EF、linq、netadvantage第三方控件知识点笔记
很简单,如下: 父页面:(弹出提示框) function newwindow(obj) { var rtn = window.showModalDialog('NewPage.htm','','sta ...
- shell 其他杂项知识点笔记
// 其他杂项知识点 对于普通用户,Base shell 默认的提示符是美元符号$:对于超级用户(root 用户),Bash Shell 默认的提示符是井号# ------- \#!是一个约定的标记, ...
- Andrew Ng在coursera上的ML课程_知识点笔记_(1)
1.Feature Scaling(特征缩放): 如上图所示,x1是房屋面积,x2是房间个数,若不进行特征缩放,则代价函数J的曲线近似为一个瘦长的椭圆(我暂时这么理解,θ1和θ2分别是x1和x2的权值 ...
- Js零散知识点笔记
1.将类数组对象转换为数组 ES5: var arrLike = document.querySelectorAll('span'); var arr = Array.prototype.slice. ...
- 【原】web移动端常用知识点笔记
摘要:因为平时搞移动端的比例多一点,做个小小的总结.虽然网上很多这方面的总结,不过还是想自己也总结一下,适合自己的才是最好的.这样也方便以后自己的查阅 viewport模板——通用 <!DOCT ...
- PHP-HTML重要知识点笔记
1.用frameset.frame和iframe还实现多窗口 2.在图片上利用映射距离usemap来实现按钮跳转.------第8尾集 3.表单必须要有name和value,因为抓包的时候,可发现必须 ...
- c#、sql、asp.net、js、ajax、jquery大学知识点笔记
<table cellSpacing="0" cellPadding="0" width="609" height="470 ...
随机推荐
- .Net中的AutoScrollPosition问题 (panel 滚动条的位置设定)
本文转自:http://www.cnblogs.com/h2appy/archive/2008/04/23/1167400.html 有Panel类型的窗体panel1,其AutoScroll设为了T ...
- pytest框架学习-标签@pytest.mark.
标签 自定义标签(区分大小写) 可以标记测试用例,对测试用例进行分组,有利于对测试用例进行筛选. 比如:给用例打标为API,代表接口自动化的用例,打标方法为@pytest.mark.API,打标后,需 ...
- minio集群部署
minio集群部署 1.说明: 安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替. 运行分布式 MinIO 实例的服务器时间差不应 ...
- ElasticSearch之cat component templates API
命令样例如下: curl -X GET "https://localhost:9200/_cat/component_templates?v=true&pretty" -- ...
- 直接在*.vue文件(SFC)中使用JSX/TSX渲染函数,真香!
前言 在日常开发中vue的模版语法在大多数情况都能够满足我们的需求,但是在一些复杂的业务场景中使用模版语法就有些麻烦了.这个时候灵活的JSX/TSX渲染函数就能派上用场了,大多数同学的做法都是将*.v ...
- C#数据结构与算法系列(十七):时间复杂度(下)
1.常见的时间复杂度 常数阶:O(1) 对数阶:O(log2n) 线性阶:O(n) 线性对数阶:O(nlog2n) 平方阶:O(n^2) 立方阶:O(n^3) k次方阶:O(2^n) 常见的算法时间复 ...
- 神经网络基础篇:详解二分类(Binary Classification)
二分类 注:当实现一个神经网络的时候,通常不直接使用for循环来遍历整个训练集(编程tips) 举例逻辑回归 逻辑回归是一个用于二分类(binary classification)的算法.首先从一个问 ...
- 震惊!火爆全网的ChatGPT背后使用的数据库居然是……
摘要:ChatGPT承认了自己背后使用的数据库是Cassandra. OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴,热衷于尝试这一新AI成果的网民不在少数.Ch ...
- 从Encoder-Decoder模型入手,探索语境偏移解决之道
摘要:在本文中,我们展示了CLAS,一个全神经网络组成,端到端的上下文ASR模型,通过映射所有的上下文短语,来融合上下文信息.在实验评估中,我们发现提出的CLAS模型超过了标准的shallow fus ...
- JS对象拷贝:深拷贝和浅拷贝
摘要:对象拷贝,简而言之就是将对象再复制一份,但是,复制的方法不同将会得到不同的结果. 本文分享自华为云社区<js对象深浅拷贝,来,试试看!>,作者: 北极光之夜.. 一.速识概念: 对象 ...