处理硬盘文件是C语言基本功。主流方法就两种:标准IO(stdio.h) 和 系统IO低级IO(unistd.h, fcntl.h)。记住:日常首选标准IO!系统IO仅在特定需求时才用。核心差异一句话:标准IO有“缓冲区”(预加载数据,效率高),系统IO是原始字节流操作**(控制精细)。代码对比直击核心场景1:打开关闭文件标准IO:fopen + fclose …
最新内容
目标:在 不破坏性能 的前提下,写出边界安全、可维护的字符串代码;给出 strcpystrcat 的替代方案、容量与长度的双指标思维、以及 UTF-8 等多字节编码的注意事项。1)为什么 strcpystrcat 不安全?不感知容量:一旦源比目标长就越界。不自动加边界:错误难以暴露,常在上线后“随机崩”。多字节编码下更难排查。2)容量与长度的双指标容量(ca …
最近在逛B站的时候发现有候捷老师的课程,如获至宝。因此,跟随他的讲解又复习了一遍关于C++的内容,收获也非常的大,对于某些模糊的概念及遗忘的内容又有了更深的认识。以下内容是关于虚函数表、虚函数指针,而C++中的动态绑定实现和这两个内容是分不开的。一,虚函数表、虚指针当一个类在实现的时候,如果存在一个或以上的虚函数时,那么这个类便会包含一张虚函数表。而当一个子 …
c语言static关键字有3种用法全局static变量在全局变量前加static 此变量作用域被限制在本文件中可见,如果以文件作为模块,变量增加static类似于本模块的私有变量,如果没有初始化此变量的话和全局变量一样默认会初始化为 0。局部static变量局部static变量为函数内部变量前加static关键字,此变量生存期超越普通局部变量,其实编译器内部 …
volatile关键字用于告诉编译器,该变量可能会被其他线程或外部设备修改,因此需要每次都从内存中读取该变量的值。它可以保证程序在多线程环境下正确地访问共享变量,避免出现数据竞争等问题。应用场景:1. 多线程编程:当多个线程同时访问同一个变量时,如果不使用volatile关键字,可能会出现数据竞争的问题,导致程序崩溃或者结果不正确。使用volatile关键字 …
asm插入一个汇编指令.auto声明一个本地变量.bool声明一个布尔型变量.asm语法:asm( "instruction" );asm允许你在你的代码中直接插入汇编语言指令, 各种不同的编译器为这一个指令允许不一致形式, 比如: asm {instruction-sequence}orasm( instruction );auto关键字a …
C语言中的关键字是预先保留的标识符,具有特定的含义。程序员在定义变量、函数名等标识符时不能使用这些关键字。本文将对C语言中的关键字进行详细的介绍,并介绍C99和C11标准中新增的关键字。标准关键字C语言标准定义的关键字主要包括数据类型、流程控制、函数和数据结构定义等方面。下表列出了这些关键字及其说明:关键字说明auto声明自动变量,现在很少使用break跳出 …
C 语言中的关键字又称保留字,它们只能用于预定义的目的,而不能用于任何其它目的。C89C89 中包含 32 个关键字:C99C99 中包含 37 个关键字(粗体蓝色部分是新增关键字(+5)):C11C17C11C17 中包含 44 个关键字(粗体蓝色部分是新增关键字(+7)):C23C23 计划于 2024 年发布,其中包含 54 个关键字(粗体蓝色部分是新 …
register属于存储类关键字。其它还有auto、extern、static、const、volatile、restricted等。如下例。需要操作一个比较大的二维数组10000×5000。register int i, j;for ( i = 0; i < 10000; i++)for ( j = 0; j < 5000; j++)p[i][ …
本文配套视频地址如下:《关键字static的使用详解》粉丝提问粉丝问题,总结一下:关键字static的使用方法。问题要想搞清楚关键字static的使用方法,必须首先搞清楚,可执行程序段的分类以及各段在内存区的逻辑地址的映射。一、可执行程序内存分配1. 可执行程序程序分段一个程序的3个基本段:text段,data段,bss段BSS BSS(Block Star …
