- 论坛徽章:
- 0
|
24. Makefile 有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是:
$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件.
25.得到一个field在结构体(struct)中的偏移量
定义方法:
#define FPOS( type, field ) ( (dword) &((( type *) )0)-> field )
这个是最郁闷的一个,终于搞定了。。。。郁闷的typedef 和运算规则例题test.c
#include <stdio.h>
typedef unsigned long dword;
#define FPOS( type,field) (dword)&(((type *)0)->field)
typedef struct test
{
int a;
int b;
char c ;
}d;
int main(int argc,char *argv[])
{
printf("offset==%d \n",FPOS(d,b));
}
编译方法:
#gcc -Wall test.c
执行结果
#offset==0x4
“&”的运算级别小于“->”运算级别
特别推荐C 语言运算符表
#define FPOS( type,field) (dword)&(((type *)0)->field)
分析如下:把0强制类型转换为type类型指针所在的地址,再取field的值,例子中为b,&为取址运算符,取b的地址为0x2,再强制类型转换为无符号长整型dword类型,长整形为四字节对齐,原来的空间存放了a,故要重新开辟空间存储b,四字节存储,需要四字节对齐,故可以得到其值为0x4.
26.2=sizeof(short)<=sizeof(int)<=sizeof(long)=4,在上限和下限范围内均属正常情况。
27.web登陆的是bmc的图形化界面,实现功能少,远程控制之后进入的为业务系统,即间接登陆host.业务系统。
28.断言(assert)就是声明某种东西应该为真。当它被执行时,这个宏对表达式参数进行测试。如果它的值为假(零),它就向标准错误打印一条诊断信息并终止程序。这条信息的格式是由编译器定义的,但它将包含这个表达式和源文件的名字以及断言所在的行号。如果表达式为真(非零),它不打印任何东西,程序继续执行。 当程序被完整地测试完毕之后,你可以在编译时通过定义NDEBUG消除所有的断言。你可以用-DNDEBUG编译器命令行选项或者在源文件中头文件assert.h被包含之前增加下面这个定义#define NDEBUG 当NDEBUG被定义之后,预处理器将丢弃所有的断言,这样就消除了这方面的开销,而不必从源文件汇中把所有的断言实际删除。
29.rmdir只能删除空目录。
30. 交换进程(pid 0),init (pid 1)以及页精灵进程(pid 2)。
31.建立samba服务器设置,/usr/sbin/setenforce 0
打开samba服务器配置窗口,首选项->samba用户->添加用户->输入口令
添加共享->目录->共享名->访问(设置你允许访问的用户)
32.在幻灯片里面插入图片的快捷方式图标链接
插入对象+链接+显示为图标 |
|