
语法总结
文章平均质量分 57
Clover_00
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
文件操作
为什么使用文件我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。2.1 程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(.转载 2021-05-10 21:37:01 · 115 阅读 · 0 评论 -
一个宏将一个整数的二进制位的奇数位和偶数位交换
这里的奇数偶数进行交换是将他的二进制数进行的奇数偶数位进行交换,既然是对二进制进行交换了那大家自然也就想到了按位与按位或这种二进制操作。0x55555555是十六进制的:01010101010101010101010101010101。0xaaaaaaaa是十六进制的:10101010101010101010101010101010。所以开始先将n和0x55555555按位与,求出来n的所有奇数位置的数字,然后将求得的数左移一位,现在的数字就是将n的奇数位的所有内容放到了偶数位置.这时候只要求出来n原创 2021-05-09 18:58:31 · 474 阅读 · 0 评论 -
offsetof宏的实现,计算结构体中某变量相对于首地址的偏移
用一个宏定义offsetof求一个结构体struct里某个变量相对struc的编移量如:struct student{int a;char b;double c;}则:offsetof(student,a); //等于0offsetof(student,b);//等于4首先,ANSI C标准允许任何值为0的常量被强制转换成任何一种类型的指针,并且转换结果是一个NULL指针,所以我们的第一步(struc*)0,就是把0转换为一个struc类型的指针。&(((s*)0)->m原创 2021-05-09 18:44:54 · 305 阅读 · 0 评论 -
return 0和return 1和return -1的区别
1、返回值int 类型的函数返回:return语句用来结束循环,或返回一个函数的值。return 0:一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。return -1::表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败;以上两个是约定俗成,系统提供的函数绝大部分定义为int类型返回值的都是这样的。返回值是返回给系统用的,给系统看得。一般做调试的时候也会用的,当出现错误的时候可以根据返回值来确定问题出在哪一个函数上的。再次提醒,注意此时返回的类型是i转载 2021-05-09 09:23:08 · 880 阅读 · 0 评论 -
#pragma once和#ifndef
#pragma once用法总结1.#pragma once这个宏有什么作用?为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别。但两者仍然有一些细微的区别。2.两者的使用方式有何区别?示例代码如下:方式一: #ifndef __SOMEFILE_H__#define __SOMEFILE_H__ ... ... // 声明、定义语句转载 2021-05-08 09:34:23 · 2272 阅读 · 0 评论 -
const char *、char const*、char *const三者的区别
一、const char *对于const char * s来说,const char * 是指向常量的指针,而不是指针本身为常量,可以不被初始化.该指针可以指向常量也可以指向变量,只是从该指针的角度而言,它所指向的是常量。* s是不变的,s是可以改变的,const限定的* s。s被一个解引用运算符修饰,故s是个普通的指针,可以修改,但是s所指向的数据(即*s)由于const的修饰而不可通过指针s去修改。即:指向数据的内容不可以修改。二、char *consts是个不可修改的指针(指向不可以修改),原创 2021-05-08 09:29:01 · 1872 阅读 · 0 评论 -
#define宏定义与typedef类型定义
typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如:先定义:typedef char* PSTR;然后:int mystrcmp(const PSTR, const PSTR);const PSTR实际上相当于const char* 吗?不是的,它实际上相当于char* const。原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。转载 2021-05-08 09:14:24 · 365 阅读 · 0 评论