文章目录
前言
记录工作学习中遇到一些C/C++编程技巧,目前还在不断完善中。。
1、 C语言宏定义中#符号和##的妙用
- #运算符用在预编译时期,用于将宏参数转换为字符串,即是加上双引号。
- ##运算符用于在预编译期粘连两个符号,增大了宏的使用灵活性!
2、变长结构体
当结构体中含有字符指针时,使用边长结构体可以方便申请/释放内存。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#define PATH_LENG 10
struct Stu {
int a;
char name[1];
};
int main(int argc, char **argv) {
int len = strlen(name);
struct Stu *stu = (struct Stu*)malloc(sizeof(struct Stu) + 9);
char *name = "123456789";
memcpy(stu->name, name, sizeof(name));
printf("%s %d\n", stu->name, sizeof(name));
return;