
C/C++语言
wshngyf
这个作者很懒,什么都没留下…
展开
-
指针学习总结(函数指针,指针型函数)
函数指针 函数指针就是把函数在内存中的首地址赋予一个指针变量,用这个指针就可以实习函数的调用。 函数指针变量定义的一般形式为:类型说明符 (*指针变量名)();char name(){ print("演示函数指针调用");}main(){ char name(); //函数声明 char (*p)(); //定义函数指针 p=name;原创 2015-03-19 09:43:30 · 806 阅读 · 0 评论 -
C++类的空间大小
查看类的空间大小用sizeof(类名),这个大家都知道。那么类的空间大小是如何计算的呢?首先需要满足的几个条件1、结构体的大小等于结构体内最大成员大小的整数倍2、 结构体内的成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍,比如说double型成员相对于结构体的首地址的地址偏移量应该是8的倍数。3、 为了满足规则1和2编译器会在结构体成员之后进行字节填充!原创 2015-08-31 16:21:32 · 510 阅读 · 0 评论 -
为什么把成员函数声明为虚函数
1.首先看成员函数所在的类是否会作为基类。然后看成员函数在类的继承后有无可能被更改功能,如果希望更改其功能的,一般应该将它声明为虚函数。2. 如果成员函数在类被继承后功能不需修改,或派生类用不到该函数,则不要把它声明为虚函数。不要仅仅考虑到要作为基类而把类中的所有成员函数都声明为虚函数。3、应考虑对成员函数的调用时通过对象名还是通过基类指针或引用去访问,如果是通过基类指针或原创 2015-08-29 22:23:03 · 979 阅读 · 0 评论 -
C++类的继承笔记
C++类的继承学习笔记。原创 2015-08-27 17:25:34 · 679 阅读 · 0 评论 -
编程语言的几个命名法
好的命名规范可以更好的阅读程序原创 2015-08-26 11:31:56 · 2057 阅读 · 0 评论 -
C语言中static的作用
static不仅能定义变量还能定义函数,定义变量又分为定义局部变量还是外部变量用static定义局部变量:定义局部变量就是在一个函数体内定义,一般定义的变量,是在用的时候在动态存储区开辟空间,所在函数结束时释放空间。而用static声明的局部变量,则在编译时就开辟内存空间,整个程序结束时释放,作用域还是在这个函数内。 当这个函数再次执行时,static定义的变量还是上次函数结束时保存的值。原创 2015-06-14 21:06:49 · 701 阅读 · 0 评论 -
指针与数组的区别
1.数组有固定的大小空间,数组名就是数组的首地址。例如: int a[5] int *p=a 就是把a数组的首地址赋值给指针p 2.任何一个数组下标的运算都等同于 一个对应 的指针运算。3.数组的地址存储的是内容,指针存储的是内容的地址。数组是直接访问数据,指针是间接访问数据。例如:int a[5]; a[1]=a; a[2]=b; int *p=a; p存放的原创 2015-07-12 20:47:30 · 539 阅读 · 0 评论 -
进程间通信有名管道(自创建自删除)
这段时间学习进程间通信,给大家分享一下,这些理解即可,实际中用到会写的更复杂。先把代码贴出来#include #include #include #include #include #include #include #include int main(void){ char buf[128]; int a; a = mkfifo("/test/6.原创 2015-06-30 22:17:46 · 3300 阅读 · 0 评论 -
用make编译多个.c文件
最近买了三本经典的C语言书在看(C和指针,C陷阱与缺陷,C专家编程)。同时在学习Linux系统编程。在编译.c文件时,有时太多,不想一个一个敲,就用make写了一下,很简单。obj:=$(patsubst %.c,%.o,$(wildcard *.c))test:$(obj) gcc -o test $(obj)注意 gcc这一行命令前面不是空格 是TAB键 这里用到了两个原创 2015-06-27 23:03:37 · 2205 阅读 · 0 评论 -
简单学习STM32CAN协议
CAN(Controller Area Network控制器局域网)协议为串行通信协议,通信距离远。常用于汽车电子行业里。目前汽车上的网络连接方式主要采用2 条 CAN:一条用于驱动系统的高速 CAN,速率达到 500kb/s。主要面向实时性要求较高的控制元,如发动机、电动机等。另一条用于车身系统的低速 CAN,速率是 100kb/s。主要是针对车身控制的,如车灯、车门、车原创 2015-05-19 22:42:18 · 7904 阅读 · 1 评论 -
指针学习总结(数组指针,指针数组)
指针是C语言的精髓,它可以直接操作内存地址,学会灵活运用指针将会非常方便。很多人碰到指针会犯迷糊,搞不懂指针到底是什么。 数据在内存中是怎样存储读取呢?比如定义一个变量,程序在编译时系统会给这个变量分配 内存单元。然后根据类型给它分配相应的字节,内存区每块字节都有相应的编号,这种编号就是内存地址。指针就是用来存放内存地址的。要想存放内存地址我们要先得到地址,这时就用到 “&”这个符号原创 2015-03-18 09:07:06 · 553 阅读 · 0 评论 -
学习C语言位运算的概念(原码,反码,补码)
c语言既具有高级语言的特性,又具有低级语言的功能,尤其是它提供的指针运算和位运算,满足了编写系统软件的需要,因而具有广泛的用途和很强的生命,也是C语言能够大部分取代汇编语言的原因之一。---书上写的,我也是这么认为的。 位运算就是对是进行二进制运算,是对计算机内部的二进制形式数据进行的运算。 C语言提供的位运算只适用于整形或字符型数据,不适用于实行数据。一个数有原码,反码和补码三种转载 2015-03-23 20:18:11 · 989 阅读 · 0 评论 -
C语言全局变量与局部变量区别
全局变量默认初始化为0,局部变量默认为随机数。 因为在内存中的存储位置不同。局部变量在动态储存区,全局变量在静态存储区。 static改变局部变量的存储位置,由动态存储区->静态存储区。原创 2015-03-18 09:02:22 · 785 阅读 · 0 评论 -
C语言计算两个正整数的最大公约数与最大公倍数
先给出源码,下面解释。#include void main(){ int a,b,c,d; //定义四个变量 scanf("%d,%d",&a,&b); d=a*b; //求出两个正整数的乘积 while (b!=0) { c=a%b;//重点是这里 ,很多人看不懂,再往下面看 a=b; b=c;原创 2015-03-18 09:02:33 · 3002 阅读 · 0 评论 -
结构体总结(结构体定义,赋值,访问)
C语言的基本数据类型对于描述较多的信息比较麻烦,自定义一种数据类型来满足我们的需要,这就是结构体指针,自己定义的数据类型。比如我们做一个学生管理系统(最近在做这个),对学生的描述要有姓名,年龄,学号,成绩等等。怎样将这些用一种类型表示呢?struct 结构体名{成员列表};结构体名就是你自定义这个类型的名字,成员列表就是你需要这些变量的类型(类型 成员名)。比如struct student {c原创 2015-03-23 12:48:13 · 3866 阅读 · 0 评论 -
C语言十进制,八进制,十六进制输出分析
C语言可以使用三种数制表示数字,十进制,八进制,十六进制。八进制以0开头,十六进制以0X或0x开头,即使你使用%d打印,编译器也会认为你输入的是八进制。比如我们输入020。int x=020;printf("%d,%o,%x\n",x,x,x);输出的结果是:16,20,10如果输入的是 int x=20;printf("%d,%o,%x\n",x,x,x);显示结原创 2015-03-30 21:50:38 · 16223 阅读 · 2 评论 -
单片机的汇编语言与嵌入式C语言的比较
零基础从C语言入手。在书上看到单片机的汇编语言与嵌入式C语言的比较,比较有用。 1.嵌入式C程序中的主函数是汇编程序中的主程序;嵌入式C程序中的函数是汇编程序中的子程序。程序运行都是从主函数或主程序开始,并终止于主函 数或主程序中的最后一条语句。但是在编写方面,汇编程序中的主程序必须编写在整个程序的最前面,因为汇编程序运行是从整个程序中的第一行开 始;而嵌入式C程序中的主原创 2015-03-17 20:59:35 · 2108 阅读 · 0 评论 -
结构数组与结构指针数组
这几天白天上课,晚上回来就睡了,没有更新。C语言学完了,但是学习的脚步不能停止,深入学习C语言。今天回来早,写一篇结构数组和结构指针数组的总结。先定义一个结构数组:struct stu a[]{ {"ming",1,a+1},{"zhang",2,a+2},{"gao",3,a+3}};struct stu *p;//定义一个结构体指针注意:定义的结尾原创 2015-03-27 21:14:33 · 871 阅读 · 0 评论 -
gcc编译器编译程序过程
gcc编译器支持多平台编译,不仅支持C,C++,JAVA,Pascal等,几乎支持所有的硬件平台。gcc在编译一个程序时,一般需要完成预处理、编译 、汇编和链接过程。使用gcc编译C程序时,这些过程是使用默认的设置自动完成 的,但是用户可以对这些过程进行设置,控制这些操作的详细过程。预处理:在预处理阶段,主要完成对源代码中的预编译语句(如宏定义define等)和文件包含原创 2015-09-12 21:35:49 · 1333 阅读 · 0 评论