- 浏览: 53558 次
- 性别:
- 来自: 石家庄
最新评论
-
NonMac:
良心博客,谢谢博主~~
C/C++ Data alignment 及 struct size深入分析
文章列表
int main(int argc,char* argv[]){
if(argc <=2)
return -1;
char *str;
//从command line 得到两个字符串。
str = strcat(argv[1],argv[2]);//很奇怪,如果这里换成 str = strcat(*++argv,*++argv)结果会是反的。
printf("%s",str);
free(str);
return 0;
}
//关键是找到第一个字符串的结束位置,然后复制另一个string。
char* ...
C/C++, 字符串,比如 char* ch ="123" 转化为整形 int
int char_to_int(char * ch){
char c;
int result =0;
while(c = *ch++){
result *= 10;
result += (int)(c-'0');
}
return result;
}
C/C++,对于union的 size,普遍说法是,union的大小和其所包含的成员中size最大的members一致。
int main(void){
union u_tag {
char a[13];
int i;
}u;
printf("%d",sizeof(u));
return 0;
}
很快可以看出,此union中,其size最大的member是 char a[13],为 13 bytes。
但是其union的size 却是 16。
union在本质上是 variable。
The C programming language 写道A u ...
C语言,在对一个 struct variable使用sizeof operator(操作符)的时候,往往得到的结果并不是我们想象中——struct内所有member的size之和。
当清楚了什么是Data alignment(数据对齐),对这个问题就豁然开朗了。
Data Alignment
在C/C++,甚至所 ...
C/C++中, 浮点数,float以及 double 在内存中是怎样存储的?
假如,我有32-bit
8bit 8bit 8bit 000001111
对于整形int,我们可以很快得出,这是 int i = 15的内存形式。
假设,最低 ...
C语言中,数据类型间的转换,主要体现在内存间的转换,或者可以说体现在 bit 的转换,数据类型在内存的中都是以 bit 的形式体现的。
C/C++
char 1 byte
short 2 bytes
int 4 bytes
long 4 bytes
float 4 bytes
double 8 bytes
来看几个简单的例子,就会明白数据类型在转换的时候究竟发生了什么。
char ch ='A';
short s = ch;
printf("%d",s);
在console中的结果是 65。
在内存中 variable ch 是这样存储的 ...
XML Namespaces
首先来看下,为什么要引入 Namespaces 这个概念,明白了这个,我们再来一步一步挖掘 namespaces。
来看个简单的例子
<?xml version="1.0"?>
<Person>
<Name>Tom</Name>
<Address>
<Street>XinHua .7</Street>
<City>BeiJing</City>
</Address>
</Person>
...
XML 是"Extensible Markup Language" 的简称,是一种text-based,tag-based(基于文本,基于标签)的标记性语言。
XML 可以分为两种不同的mode(模式) :
Well-formed XML
Valid XML
Well-formed XML相对来说比较自由,没有预先设定好的schema(架构)来约束,可以在不违反 nesting rule for tag 的情况下,创建自己的tag,标签。
刚开始学XML,必须得清楚几个重要的概念 :
1,Tags
2,Element,Root Element,Empty Eleme ...
我们来一起看下,C语言中,对于Integer Type(整数形式)的unsigned与signed两种形式的区别,以及在内存中的存储方式是如何的
Integer type(整数形式)是C语言中的基本数据形式之一,可以究竟对于Integer的定义是什么呢? 翻书看下,在介绍Integer的时候,还有一个关键词就是size(范围)
The C Programming Language 写道 an integer,typically reflecting the natural size of integers on the host machine
Programming in ANSI C 写 ...
1, C语言 sizeof用法以及需要特别注意的地方;
2, sizeof 与 strlen()的区别;
要想弄明白这两点其实很简单,先来看下 sizeof 的定义
The C Programming Language 写道 C provides a compile-time unary operator called sizeof that can be used to compute the size of any object. The expressions
sizeof object
and sizeof(type name)
generates an integer to the ...