Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52239
  • 博文数量: 14
  • 博客积分: 1545
  • 博客等级: 上尉
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-13 00:33
文章分类

全部博文(14)

文章存档

2011年(4)

2010年(10)

我的朋友

分类: LINUX

2010-06-15 12:42:58

这是一个开始,是点点滴滴的积累

命令:
ulimit -a
查看控制shell程序的资源

printf的新风格:
printf("hello "
    "world!\n");

结构体指针的指针:
在C/C++中,自定义类,结构体等默认都是按值传递的。按值传递在函数中是无法改变参数的值的。
当函数要改变参数的值时,可以用指针传递参数,改变指针所指地址的值。
例如:
如果要在函数中修改结构体指针所指向的地址,则
函数 int setsockaddr(struct sockaddr **sa);
调用函数
struct sockaddr * sa;
setsockaddr(&sa);

char *str = "hello";
str是只读数据,不能修改
char str[] = "hello";
str不是只读数据,可以修改

printf("%p\n", &a);//%p打印内存地址

结构体的大小
编译器默认结构体大小整体按4字节对齐,最小数据类型补字节,例如
sturct test1{
    int n;
    char str[6];//char 比 int 小,补2字节对齐
};//4+6=10不是4的倍数,补2字节成12
sizeof(struct test1);//值是12
struct test2{
    int n;
    short int sn;
    char str[6];
};//4+2+6=12是4的倍数,不用补
sizeof(struct test2);//值是12
struct test3{
    int n;
    short int sn;
    char str[4];//char 比 short int 小,补2字节对齐
};//4+2+4=10不是4的倍数,补2字节成12
sizeof(struct test3);//值是12
struct test4{
    int n;
    short int sn;//short int 比 int 小,补2字节对齐
};//4+2=6不是4的倍数,补2字节成8
sizeof(struct test4);//值是8
按字节对齐,要加__attribute__ ((packed)),例如
sturct test5{
    int n;
    char str[6];
}__attribute__ ((packed));
sizeof(struct test5);//值是10
阅读(577) | 评论(0) | 转发(0) |
0

上一篇:const的另类情况

下一篇:用户相关命令

给主人留下些什么吧!~~