需要留意的重要细节c
1.在纯的.c文件中,例如struct Stu,之后不可以只使用Stu作为关键字来表示这个定义的结构体类型,一定要使用struct Stu一起作为类似int这种关键字来定义或者获取size.
2.函数之中存在互相调用,例如b调用a,那一定要把a定义在b前面不然会抱错。
3.void函数也是可以有return命令的,不过不返回任何值,只是return;,用来退出这个void函数,例如:
void Save() { FILE* pfw = fopen("data.lv", "a"); if (pfw == NULL) { printf("Save failed!"); return; } int i = 0; while (Student[i].ID != 0) { if (Student[i].ID != -1) { fwrite(Student, 1, sizeof(struct Stu), pfw); } i++; } fclose(pfw); }
和文件命令的函数配合很好用
4.puts("");很方便 记住他自带/n功能
5.int a=b>c;
当b>c成立时a=1,否则a=0
6.if(int a)
只有当a等于零的时候if不执行,当a等于-1时if是成立的
7.fwrite写入和fread要读入的数据文件,用txt打开方式是看不懂是什么东西的,因为其保存方式为二进制格式
8..c文件中写完代码最后要空一行,因为在linux中\n代表结束符(在windows代表分隔符),如果文件的结尾没有\n 就不视为一个完整的文件,也不利于文件的拼接(两个文件拼接,第二个文件的第一行会拼接成和第一个文件最后一行在一起),另外最好也要在预编译命令和代码之间空一行,因为c文件运行包括编译(compile)和连接(link),空一行相当于插入一个\n,便于连接
9.无符号数和有符号数,所占内存空间一样大,但是能表示的数的范围不一样大,无符号数能表达的值的绝对值更大,因为他不能表示负数
10.本机内存中0x1234 12为高位 34为低位
11.不同的机器有不同的汇编语言,所以不同的平台,汇编不可移植。但是不同机器的c源码基本相同,所以c语言的移植性好。
12.Implicit declaration of function 'xxxx' is invalid in C99” 警告,该警告明确告诉我们在C99的规范中,不允许出现隐含声明的用法。这是C99规范中增加的规则,不过即便不遵守此规则,也仅仅是一个警告而已。什么是隐含声明呢,也很简单,就是你调用函数的c文件中,没有正确包含对应的头文件。
13.if(*a==b)不行的话,换if(a==&b),其中a是函数中的指针类型的形参,不知道为什么
推荐阅读
-
C# 的套接字编程细节
-
C语言内存管理的重要性
-
【详解】合理运用函数递归——C语言中的重要技巧
-
重要通用算法设计的C语言进阶(下)
-
循环探索:C语言中的重要概念
-
明白易懂!详解C/C++获取当前系统时间(time_t和tm)的步骤与细节
-
【摩尔线程+Colossal-AI强强联手】MusaBert登上CLUE榜单TOP10:技术细节揭秘 - 技术实力:摩尔线程凭借"软硬兼备"的技术底蕴,让MusaBert得以从底层优化到顶层。其内置多功能GPU配备AI加速和并行计算模块,提供了全面的AI与科学计算支持,为AI推理和低资源条件下的大模型训练等场景带来了高效、经济且环保的算力。 - 算法层面亮点:依托Colossal-AI AI大模型开发系统,MusaBert在训练过程中展现出了卓越的并行性能与易用性,特别在预处理阶段对DataLoader进行了优化,适应低资源环境高效处理海量数据。同时,通过精细的建模优化、领域内数据增强以及Adan优化器等手段,挖掘和展示了预训练语言模型出色的语义理解潜力。基于MusaBert,摩尔线程自主研发的MusaSim通过对比学习方法微调,结合百万对标注数据,MusaSim在多个任务如语义相似度、意图识别和情绪分析中均表现出色。 - 数据资源丰富:MusaBert除了自家高质量语义相似数据外,还融合了悟道开源200GB数据、CLUE社区80GB数据,以及浪潮公司提供的1TB高质量数据,保证模型即便在较小规模下仍具备良好性能。 当前,MusaBert已成功应用于摩尔线程的智能客服与数字人项目,并广泛服务于语义相似度、情绪识别、阅读理解与声韵识别等领域。为了降低大模型开发和应用难度,MusaBert及其相关高质量模型代码已在Colossal-AI仓库开源,可快速训练优质中文BERT模型。同时,通过摩尔线程与潞晨科技的深度合作,仅需一张多功能GPU单卡便能高效训练MusaBert或更大规模的GPT2模型,显著降低预训练成本,进一步推动双方在低资源大模型训练领域的共享目标。 MusaBert荣登CLUE榜单TOP10,象征着摩尔线程与潞晨科技联合研发团队在中文预训练研究领域的领先地位。展望未来,双方将携手探索更大规模的自然语言模型研究,充分运用上游数据资源,产出更为强大的模型并开源。持续强化在摩尔线程多功能GPU上的大模型训练能力,特别是在消费级显卡等低资源环境下,致力于降低使用大模型训练的门槛与成本,推动人工智能更加普惠。而潞晨科技作为重要合作伙伴,将继续发挥关键作用。
-
打造手机应用的简易开发步骤及重要留意点
-
需要留意的重要细节c
-
` 自动填充为 `cp test.txt`
- 文件和目录名补全:输入文件名首字母后按 Tab,如 `vi ed
` 显示可用的编辑器列表 - 查看命令帮助: - 使用 `man` 命令配合具体命令名获取详尽帮助,如 `man ls` 或者 `man grep --help`"> 在 Linux 中操作指令指南 - 基本构造与种类 - 指令组成: 1. **主指令 + 选项 + 参数**: 如 `ls -l /home`,`main-action option object` - 内置指令:系统预装的 shell 功能,如 `cd`, `pwd` - 外部指令:独立可执行文件,直接用文件名当作命令,如 `rm`, `mv` - **选项与参数**: - 选项:定制命令行为, `-l` 或 `--long-help` - 短选项:简写形式,例如 `-v` 和 `-V` 可能合并使用 - 长选项:详细描述的选项,如 `--version` 或 `--human-readable` - 参数:命令作用的目标,如 `ls` 对 `/home` 目录的操作 - **指令应用**: - 不同指令需要不同的参数 - 选项可带或不带参数,比如 `grep -i "keyword"` (忽略大小写搜索) - 参数间通常用空格分隔,如 `cp file1 file2 file3` - **中断与完成提示**: - 终止当前指令:按下 Ctrl+C - **自动完成**: - 输入部分命令关键词后,按 Tab 键补全命令,如 `cp ta
` 自动填充为 `cp test.txt` - 文件和目录名补全:输入文件名首字母后按 Tab,如 `vi ed ` 显示可用的编辑器列表 - 查看命令帮助: - 使用 `man` 命令配合具体命令名获取详尽帮助,如 `man ls` 或者 `man grep --help`