C/C++
文章平均质量分 80
wylfdx
这个作者很懒,什么都没留下…
展开
-
C/C++中的结构体对齐问题(内存对齐)
由于程序运行时占用的内存过大,所以想办法给程序瘦身。在调试中发现结构体占用的size竟然和预想的不一样,原来……看看下面讲的吧,肯定会不枉此看哦!1,比如:struct{ short a1; short a2; short a3;}A;struct{ long a1; short a2;}B;sizeof(A)=6, sizeof(B)=8,为什么?注:s转载 2010-01-17 09:27:00 · 651 阅读 · 0 评论 -
#Pragma 指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。转载 2010-01-17 10:05:00 · 337 阅读 · 0 评论 -
extern "C" 的用意
前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误:以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);#endifC的源文件/*-----------c.c-----------转载 2010-01-17 08:45:00 · 374 阅读 · 0 评论 -
Static 作用详述
1.先来介绍它的第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c.下面是a.c的内容: char a = A; // global variable void msg()转载 2010-01-28 05:59:00 · 392 阅读 · 0 评论