linux学习与c编程2

 cc -S c.c          --编译c.c 文件,会生成 c.s的汇编代码文件
 
 修改linux计算机名,修改文件,重启 :su root 权限
 /etc/hostname
 /etc/hosts
 
 包含基本数据类型的struct中,sizeof,占4的倍数个字节。
 位模式不占4的倍数字节:(8位为一个字节)
 struct mode {
 unsigned char ur:1;
 unsigned char uw:1;
 unsigned char ux:1;
 unsigned char gr:1;
 unsigned char gw:1;
 unsigned char gx:1;
 unsigned char or:1;
 unsigned char ow:1;
 unsigned char ox:1;//后面指定位数
 };
 struct mode m={1,1,0,1,0,0,1,0,0};
 
 char * toChinese(char c)//数字转换为文字表示
 {//局部变量返回地址,因数据已释放,使用地址时会报错
    static char num[10][5]={"零","一","二","三","四","五","六","七","八","九"};
	return num[c-'0'];
 }
 char toUpper(char c)
 {
 return (c-'a'+'A');
 }
 //对寄存器变量取地址是错误的
 char * p=toChinese('1');
 printf("%s\n",p);
 
 void swap(int a,int b)
 {
 int t=a;
 a=b;
 b=t;
 }
 
 #include<stdarg.h>
 int max(int n,...)  //多个可变参数,n为具体参数个数
 {
  va_list v;
  va_start(v,n);//开始
  int i;
  int maxvalue=va_arg(v,int);//取第一个参数
  for(i=1;i<n;i++)
  {
    int data=va_arg(v,int);//循环取参数
	if(data>maxvalue) maxvalue=data;
  }
  va_end(v);//结束
  return maxvalue;//返回最大值
 }

上一篇:元旦在家撸了两天Seata源码,你们是咋度过的呢?


下一篇:如何手工展开函数栈来定位问题