C及C++语言基础
大白兔爱吃胡萝卜
做最好的自己
展开
-
关于大小端存储方式问题的思考
关于大小端存储方式问题的思考注:以下内容来自百度百科。 大端模式 所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 例子: 0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000原创 2012-09-08 11:45:35 · 1131 阅读 · 0 评论 -
类的几种特殊的成员变量的初始化
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型) 常量和引用,必须通过参数列表进行初始化。静态成员变量的初始化也颇有点特别,是在类外初始化且一定不能再带有static关键字。静态常量整型数据成员变量的初始化(Integraltype转载 2013-10-05 17:17:39 · 764 阅读 · 0 评论 -
union 联合的用法
原作者网址:http://visionsky.blog.51cto.com/733317/151760联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是联合、怎么去用、有什么需要注意的地方呢?就这些问题,我试着做一些简单的回答,里面肯定还有不当的地方,欢迎指出! 1、什么是联合? “联合”是一种特殊的类,也是一种构转载 2013-10-04 20:41:21 · 824 阅读 · 0 评论 -
sizeof 用法详解
sizeof()用法汇总sizeof()功能:计算数据空间的字节数1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作 指针均可看为变量转载 2013-10-04 20:37:17 · 706 阅读 · 0 评论 -
关于sizeof
最近在论坛里总有人问关于sizeof的问题,并且本人对这个问题也一直没有得到很好的解决,索性今天对它来个较为详细的总结,同时结合strlen进行比较,如果能对大家有点点帮助,这是我最大的欣慰了。一、好首先看看sizeof和strlen在MSDN上的定义:首先看一MSDN上如何对sizeof进行定义的:01.sizeof Operator02. 03.size转载 2013-10-04 20:53:43 · 868 阅读 · 0 评论 -
(C语言)共用体union的用法举例
原作者:jiangnanyouzi的专栏以前在学校学习C语言的时候一直搞不懂那个共用体union有什么用的。工作之后才发现它的一些妙用,现举例如下:1. 为了方便看懂代码。比如说想写一个3 * 3的矩阵,可以这样写:[ 注:下面用红色部分标记的地方是后来添加上去的,谢谢yrqing718的提醒!]struct Matrix{ union转载 2013-10-04 20:39:06 · 949 阅读 · 0 评论 -
什么是内存对齐
什么是内存对齐??? 考虑下面的结构: struct foo { char c1; short s; char c2; int i; }; 假设这个结构的成员在内存中是紧凑排列的,假设c1的地址是0,那转载 2013-09-04 09:49:14 · 773 阅读 · 0 评论 -
预处理指令 #Pragma
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些转载 2013-09-04 09:46:53 · 651 阅读 · 0 评论 -
指针函数与函数指针的区别
指针函数与函数指针的区别 一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是转载 2013-09-02 09:09:08 · 532 阅读 · 0 评论 -
C语言编译全过程 3
C语言编译全过程 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.ex转载 2013-09-06 17:14:03 · 681 阅读 · 0 评论 -
C 程序编译过程总结
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处转载 2013-09-06 16:58:18 · 771 阅读 · 0 评论 -
C语言程序编译过程 2
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接转载 2013-09-06 17:09:02 · 1514 阅读 · 1 评论 -
C中的volatile用法
C中的volatile用法volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j =转载 2013-09-06 11:54:53 · 539 阅读 · 0 评论 -
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char*转载 2013-09-06 11:31:12 · 728 阅读 · 0 评论 -
虚函数练习 多态理解 动态绑定
把自己的练习代码在此做个记录,希望对部分朋友有帮助。至于结果,就不贴上来了,想研究的自己粘下来到vc6.0里面去试一下看来 虚函数表 虚函数表指针 this指针 这几个之间关系还是比较微妙的。下面一段话是一个高手写的,结合我的这段代码理解,会更有意思高手曰:编译器发现一个类中有虚函数,便会立即为此类生成虚函数表 vtable。虚函数表的各表项为指向对应虚函数的指针。编译器还会在此类中隐含插入原创 2013-03-02 22:30:23 · 699 阅读 · 0 评论 -
关于调用子函数给主函数指针分配内存
关于调用子函数给主函数指针分配内存 (2011-06-07 13:41:53)转载▼标签: 杂谈分类: C典型的错误例子如下在这个主函数的指针给子函数传递一个指针,而在子函数中形参有开辟了一块内存,此子函数的指针的内存里存储的地址与主函数是同一地址,即主函数的指 针和子函数形参的指针都指向同一块内存的地址,转载 2012-10-11 22:08:27 · 4871 阅读 · 2 评论 -
集成电路中的assert和deassert应该如何翻译?
集成电路中的assert和deassert应该如何翻译?转载 2016-12-08 15:51:18 · 1635 阅读 · 0 评论