C语言技巧总结(自用)

宏相关内容

#define 定义一个预处理的宏

#undef 取消宏的定义

#if 编译以处理中的条件命令,类似于C语言中的if语句

#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句

#elif 若#if,#ifdef,#ifndef或前面的#elif条件不满足,则执行当前#elif之后的语句,相当于C语言中的else if

#endif #if ,#ifdef,#ifndef这些条件命令的结束标志 

#define STRINGIFY(x) #x  使用#操作符将参数转换为字符串

#define CONCAT(x, y) x##y   使用##操作符来将两个符号连接在一起

常见位运算

符号 描述 运算规则
& 两个位都为1时,结果才为1
| 两个位都为0时,结果才为0
^ 异或 两个位相同为0,相异为1
~ 取反 0变1,1变0
<< 左移 各二进位全部左移若干位,高位丢弃,低位补0
>> 右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

C库函数

字符串处理函数:

strlen(const char *str):返回字符串的长度
strcpy(char *dest, const char *src):复制字符串
strcat(char *dest, const char *src):连接字符串
strchr(const char *str, int c):在字符串中查找字符
strstr(const char *haystack, const char *needle):在字符串中查找子串
strspn() : size_t strspn(const char *str1, const char *str2) 检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标
strcmp(): C 库函数 **int strcmp(const char *str1, const char *str2)****str1** 所指向的字符串和 **str2** 所指向的字符串进行比较。如果返回值小于 0,则表示 str1 小于 str2;如果返回值大于 0,则表示 str1 大于 str2;如果返回值等于 0,则表示 str1 等于 str2
strncmp():C 库函数 **int strncmp(const char *str1, const char *str2, size_t n)****str1****str2** 进行比较,最多比较前 **n** 个字节。如果返回值小于 0,则表示 str1 小于 str2;如果返回值大于 0,则表示 str1 大于 str2;如果返回值等于 0,则表示 str1 等于 str2

动态内存分配函数:

malloc(size_t size):分配指定大小的内存空间
calloc(size_t num, size_t size):分配指定数量、大小的内存空间,并初始化为0
realloc(void *ptr, size_t size):更改已分配内存块的大小
memcpy():C 库函数 void *memcpy(void *str1, const void *str2, size_t n) 从存储区 str2 复制 n个字节到存储区 str1
memset():C 库函数 void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符

文件操作函数:

fopen(const char *filename, const char *mode):打开文件
fclose(FILE *stream):关闭文件
fputc(int c, FILE *stream):将一个字符写入文件
fgets(char *str, int n, FILE *stream):从文件读取一行文字

数学函数:

fabs(double x):返回x的绝对值
sqrt(double x):返回x的平方根
pow(double x, double y):返回x的y次幂
sin(double x):返回x的正弦值
cos(double x):返回x的余弦值

日期和时间函数:

time_t time(time_t *t):获取当前时间
struct tm *localtime(const time_t *timep):将时间转换为当地时间
char *asctime(const struct tm *timeptr):返回日期和时间的字符串表示

相关推荐

  1. C语言技巧总结自用

    2024-02-22 23:46:01       56 阅读
  2. C语言项目总结

    2024-02-22 23:46:01       41 阅读
  3. C 语言基础概念总结

    2024-02-22 23:46:01       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 23:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 23:46:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 23:46:01       82 阅读
  4. Python语言-面向对象

    2024-02-22 23:46:01       91 阅读

热门阅读

  1. Web基础

    Web基础

    2024-02-22 23:46:01      54 阅读
  2. 深入理解Python爬虫的Response对象

    2024-02-22 23:46:01       55 阅读
  3. P5719 【深基4.例3】分类平均

    2024-02-22 23:46:01       54 阅读
  4. 开源软件的影响力

    2024-02-22 23:46:01       48 阅读
  5. linux命令--pidof

    2024-02-22 23:46:01       49 阅读
  6. springboot接收base64文件并上传

    2024-02-22 23:46:01       40 阅读
  7. 【达梦数据库】查看pesg回滚段信息的视图和SQL

    2024-02-22 23:46:01       53 阅读
  8. 数学术语之源——插值(interpolation)

    2024-02-22 23:46:01       56 阅读
  9. C和C++编译器标识符

    2024-02-22 23:46:01       57 阅读
  10. MQL语言实现单元测试

    2024-02-22 23:46:01       43 阅读
  11. 机器学习系列-机器学习范式

    2024-02-22 23:46:01       42 阅读