计算机组成原理
文章平均质量分 88
monroyaume
这个作者很懒,什么都没留下…
展开
-
C语言头文件.h互相包含所引发的一系列错误C2143之类的解决方法
本文可解决的问题:在一个头文件.h中定义一个结构体,在另一个.h文件中使用这个结构体引发错误 C2143 语法错误: 缺少“)”(在“*”的前面) (编译源文件......等莫名的报错 头文件的交叉包含,即头文件a包含了头文件b、头文件b又包含了头文件a 多个不同的头文件包含同一个头文件,导致重复包含和预编译解决方案:1,防止头文件重复包含和交叉包含导致的问题/...原创 2019-09-23 22:31:15 · 10047 阅读 · 1 评论 -
在windows 10以及旧版window系统安装和使用diff的教程
“'diff' 不是内部或外部命令,也不是可运行的程序”以及Vivado HLS中system("diff --brief -w result.dat result.golden.dat") 问题的解决方案是:在Windows系统下安装GnuWin32,以此实现在Windows系统中使用diff命令。具体安装方法和安装文件请看:https://download.csdn.net/dow...原创 2019-09-12 01:27:53 · 1470 阅读 · 0 评论 -
详解指向多维数组的指针
1,二维数与指针//输出代码举例void main(){ int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%u ,%u\n”,a,*a); printf(“%u ,%u\n”,a[0],*(a+0)); printf(“%u ,%u\n”,&a[0],&a[0][0]); ...原创 2019-09-11 18:15:56 · 5614 阅读 · 0 评论 -
面向对象编程是什么意思呢?汇总
https://blog.csdn.net/qq_32381815/article/details/79119996面向对象思想--谈谈你对面向对象的理解 https://blog.csdn.net/qsbbl/article/details/71982300【面向对象】这些基本概念,你都了解了吗(上) https://blog.csdn.net/qsbbl/article/details...原创 2019-09-10 11:03:02 · 1552 阅读 · 0 评论 -
C语言指针详解-资料汇总
https://blog.csdn.net/constantin_/article/details/79575638C语言指针详解(经典,非常详细) https://blog.csdn.net/weixin_39951988/article/details/87773322C/C++指针详解之基础篇-史上最全最易懂指针学习指南 https://blog.csdn.net/weixin_39...原创 2019-09-10 10:56:37 · 268 阅读 · 1 评论 -
指针的加减算术运算-指针加常数意味着什么?
一、重点 指针是一个大小固定为4个byte的变量,不管是什么类型的指针大小都是固定的,它存放的只是一个地址信息。 指针变量加1,即表示指针变量指向下一个数据元素的首地址。这并不是在原地址值的基础上加1。至于真实的地址加了多少,要看原来指针指向的数据类型是什么。 真实的地址计算原则上为:指针P+1 = 指针P + sizeof(指针的类型) * 1 二、指针操作分析...原创 2019-09-08 17:08:41 · 2377 阅读 · 0 评论 -
C语言运算符的优先级和结合性及部分易错优先级
1,优先级表2,易错优先级:3,*和++哪个优先级更高:原文链接:https://blog.csdn.net/menogen/article/details/25156937https://blog.csdn.net/huangblog/article/details/8271791http://blog.sina.com.cn/s/blog_80d8...原创 2019-09-08 16:42:52 · 350 阅读 · 0 评论 -
二维数组作为函数的参数进行传值,调用和使用
一、 情况1:实参为二维数组在main函数中 int a[3][3];调用形式 print(a);//形参支持和不支持的形式void print(int** a); //ERROR;当调用形式为 print( (int **) a)时,这种定义,对应int a[3][3]没有问题OK;void print(int* a[3]); //ERROR;这...原创 2019-09-06 16:37:27 · 18286 阅读 · 1 评论 -
二维数组使用memcpy赋值,使用malloc动态申请内存,以及结构体数组的memcpy
二维数组使用memcpy赋值://void *memcpy(void *dest, const void *src, size_t n);从源src所指的内存地址的起始位置开始拷贝n个//字节到目标dest所指的内存地址的起始位置中。调用该函数需要引用string.h头文件.int a[M][N], b[M][N];memcpy(b, a, sizeof(a));/////////...原创 2019-09-06 11:42:06 · 5585 阅读 · 0 评论 -
区别八进制,十进制,十六进制在C语言中的表示方法
0x是16进制的前缀,H是16进制的后缀都是表示十六进制数,意义上没有什么区别,完全相等。至于什么时候用0x,什么时候用H,这取决于你在什么环境下使用,如果在C/C++,必须用0x来表示。在C语言中是不能用H的.在C语言里,整数有三种表示形式:十进制,八进制,十六进制。其中以数字0开头,由0~7组成的数是八进制。以0X或0x开头,由0~9,A~F或a~f 组成是十六进制。除表示正负...转载 2019-09-06 11:14:38 · 30677 阅读 · 0 评论 -
C语言使用结构体给另一个同类型结构体赋值
直接使用等号赋值即可:n2 = n1;struct node { long a; int b; char c; long array[3];};int main() { struct node n1; n1.a = 1; n1.b = 2; n1.c = 3; n1.array[0] = 10; n1.ar...转载 2019-09-04 22:52:56 · 12041 阅读 · 0 评论 -
二维字符数组的定义、赋值和使用
二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。二维字符数组的定义二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小];如:char c[3][10]; //定义了一个3行10列的二维字符数组c由于该二维数组的每一行 c[0]、c[1]、c[2] 均是含有 10 个元素的一维字符数组,即二维数组的每一行均可表示一个字符...转载 2019-09-04 00:09:08 · 28668 阅读 · 0 评论 -
关于流水线问题的总结-包括指令流水和FPGA流水
指令流水:1,流水线—你理解多少?https://blog.csdn.net/yi_zz/article/details/74799122,三步教你用Verilog写一个CPU:第一步https://blog.csdn.net/iteye_5971/article/details/826122123,指令流水线归纳总结:https://www.cnblogs.com/dragonir/...原创 2019-09-02 23:46:14 · 427 阅读 · 0 评论 -
原码,反码,补码-最好的解释
在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 计算机存储负数如-127时,并不是将其原码11111111原样存入,而是将其数值部分按位取反后再加上1(补码)的结果存入计算机中,即存储-127时,先对11111111中的1-7位取反:10000...转载 2019-09-02 17:51:01 · 1149 阅读 · 0 评论 -
二进制有符号数运算及溢出判别
就是把符号位当作数据位一样处理。我的注解:上面例子都是补码相加,其中例7左边正数补码是其本身,右边负数补码取反加一,进位是两加数每一位运算自身产生的进位。上面都是两个8bit相加,从左至右第一个bit位是符号位,第二个bit位是最高数值位,如果结果超出8bit,则超出的位不会在计算机中存储,因此造成溢出现象//-------------------------------------...转载 2019-09-02 16:32:19 · 26278 阅读 · 8 评论 -
超强大汇编语言超浓缩教程
最近想了解计算机组成原理,特保存一些查看的资料:1,北京大学陆俊林教授coursera公开课-计算机组成原理:http://mooc.pku.edu.cn/mooc/course1.php?lmid=22,超强大汇编语言超浓缩教程哎哟,哥们儿,还捣鼓汇编呢?急,一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好...转载 2019-09-01 21:40:55 · 2206 阅读 · 0 评论