3文件操作
文件操作是C语言中常用的功能之一,可以通过标准库函数fopen、fclose、fread、fwrite等来实现。
#includeintmain(){FILE*file;charbuffer100;//打开文件file=fopen("example.txt","w");if(file==NULL){printf("Unabletoopenfile!\n");return1;}//写入文件fprintf(file,"Hello,World!\n");fclose(file);//读取文件file=fopen("example.txt","r");if(file==NULL){printf("Unabletoopenfile!\n");return1;}fread(buffer,sizeof(buffer),1,file);printf("Readfromfile:%s\n",buffer);fclose(file);return0;}
1内存对齐
内存对齐是指在内存中分配数据时,使其在内存地址上对齐,以提高数据访问效率。在C语言中,可以使用__attribute__((aligned))来控制内存对齐。
#includetypedefstruct{__attribute__((aligned(16)))inta;__attribute__((aligned(16)))floatb;}AlignedStruct;intmain(){AlignedStructs;printf("SizeofAlignedStruct:%zu\n",sizeof(s));return0;}
示例代码:
#include//定义结构体structPerson{charname20;intage;floatheight;};intmain(){//定义结构体变量structPersonperson1;//赋值strcpy(person1.name,"张三");person1.age=25;person1.height=1.75;//输出printf("姓名:%s\n",person1.name);printf("年龄:%d\n",person1.age);printf("身高:%.2f\n",person1.height);return0;}
联合体:联合体中的所有成员共享同一个内存区域,其大小等于其中最大成员的大小。联合体常用于需要节省内存的场景。
示例代码:
#include#includeintmain(){charstr1="Hello";charstr2="World";charstr320;//定义足够大的字符串数组//使用strlen计算字符串长度printf("str1长度:%lu\n",strlen(str1));//使用strcpy复制字符串strcpy(str3,str1);printf("str3=%s\n",str3);//使用strcat连接字符串strcat(str3,"");strcat(str3,str2);printf("连接后的str3=%s\n",str3);//使用strcmp比较字符串if(strcmp(str1,str2)==0){printf("str1和str2相同\n");}else{printf("str1和str2不同\n");}return0;}
#includetypedefunionData{inti;floatf;charstr20;}Data;intmain(){Datadata;data.i=10;printf("int:%d\n",data.i);data.f=3.14;printf("float:%f\n",data.f);strcpy(data.str,"Hello");printf("string:%s\n",data.str);return0;}
校对:白晓(f3J1ePQDlzHhwh44q38w4Ima2E3XrDq)


