c语言那些很少用到的东西

本文介绍了C语言中一些不太常用的特性,包括不同进制的表示,字符串操作函数如strcpy和strcat,位域与结构体对齐的概念,文件操作函数如fopen和fclose,预处理宏如__DATE__和__LINE__,错误处理中的errno和perror,以及可变参数函数的实现。同时,还讲解了内存管理的函数,如calloc、free、malloc和realloc。
摘要由CSDN通过智能技术生成
十六进制,十进制,八进制{
 [code]
  #include <stdio.h>
  int main(){

   int a = 0x10;
   int b = 010;
   int c = 10;
   printf("%x %o %d\n", a, b, c);
   printf("%d %d %d\n", a, b, c);
   return 0;

  }
 [result]
  10 10 10
  16 8 10
}

字符串{
 strcpy(s1, s2);
  复制字符串 s2 到字符串 s1。
 strcat(s1, s2);
  连接字符串 s2 到字符串 s1 的末尾。
 strlen(s1);
  返回字符串 s1 的长度。
 strcmp(s1, s2);
  如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。
 strchr(s1, ch);
  返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
 strstr(s1, s2);
  返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
}


位域&结构体对齐{
 struct a{
  int a:1;
  int b:10;
  int :18;
  int c:2;
 };
 无名位域
}

文件操作{
 常用函数
 FILE *fopen( const char * filename, const char * mode);
 int fclose( FILE *fp);
 
 int fputc( int c, FILE *fp);
 int fputs( const char *s, FILE *fp);
 
 int fgetc( FILE * fp);
 char *fgets( char *buf, int n, FILE *fp);
 
 int fscanf(FILE *fp, const char *format, ...);
 int fprintf(FILE *fp, const char *format, ...);
 
 size_t fread(void *ptr, size_t size_of_elements,
            size_t number_of_elements, FILE *a_file);
 size_t fwrite(const void *ptr, size_t size_of_elements,
   size_t number_of_elements, FILE *a_file);
}

预处理{
 预定义宏{
  __DATE__ 当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。
  __TIME__ 当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。
  __FILE__ 这会包含当前文件名,一个字符串常量。
  __LINE__ 这会包含当前行号,一个十进制常量。
  __STDC__ 当编译器以 ANSI 标准编译时,则定义为 1。
 }
}

错误{
 errno
 char* strerror(int _errno);
 perror(char* tip);
}

可变参数{
 [code]
  double average(int num,...)
  {
   va_list valist;
   /* 为 num 个参数初始化 valist */
   va_start(valist, num);
   /* 访问所有赋给 valist 的参数 */
   for (i = 0; i < num; i++)
      sum += va_arg(valist, int);
   /* 清理为 valist 保留的内存 */
   va_end(valist);
  }
}

内存管理{
 void *calloc(int num, int size);
  该函数分配一个带有 function allocates an array of num 个元素的数组,每个元素的大小为 size 字节。
 void free(void *address);
  该函数释放 address 所指向的h内存块。
 void *malloc(int num);
  该函数分配一个 num 字节的数组,并把它们进行初始化。
 void *realloc(void *address, int newsize);
  该函数重新分配内存,把内存扩展到 newsize。
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值