多文件开发 按位运算符 预处理指令 进制等
来源:互联网 发布:淘宝哪个店有原味丝袜 编辑:程序博客网 时间:2024/06/06 00:26
day 09 多文件 位运算
预处理指令
- * 什么叫预处理指令*
- 这一段代码面前 如果有以“#” 开头
* 手写一个C程序的步骤(面试题)*
- 创建文件,写代码
- 编译
- 执行main.c中的预处理指令
- 检查语法
- 编译生成一个.o目标文件
- 链接
- 为 .o文件添加一些启动代码
- 为 .o文件链接上一个必须要的库文件
- 执行 .out 文件
* 预处理指令的分类(面试题)以”#”开头*
- 文件包含指令 #include
- 宏定义 #define
- 条件编译 # if #enfif
- 预处理指令的特点
- 都是以# 开头
- 后面没有分号
- 在编译的时候, 检查语法之前进行
多文件开发
- C语言中的模块:
- 组成:一个.h文件 和一个.c文件组成在一起的就叫做一个模块
- 什么时候需要多文件开发
- 当一个文件中函数过多的时候
- 如何分模块开发?
- 提供两个文件
- .h文件:学函数的声明
- .c文件: 学函数的实现
- 如果想要用某一个模块中的函数
- 直接引入 这个密会的.h文件就可以了
- 提供两个文件
- * 注意*
- 在C语言中 一个模块有 .h和.c文件组成
- 在OC中 一个模块有 .h 和 .m 文件组成
- 创建.h和.c文件快捷键是: command + n
- 可以同时生成一个 .h 和一个 .c 文件
- 写模块
- 把函数的声明写在 .h 文件中
- 吧函数的实现写在 .c 文件中
- 在main函数调用的时候,只需要#include “.h文件”
- 就可以直接调用了
C语言的进制
- C语言中如何写一个不同进制的数据
* 四个概念
* 数码:
* 数据中每一位的数字
* 数位
* 数码在这个数据中的位置 从右(0开始)到左一次增加
* 基数
* 每一个数码 可以有多种不同的表示,即 进制
* 位权
* 数码 * 基数 的数位次方
进制的转换大总结
sizeof运算符的作用?
- 作用:计算当前系统和编译器下 常量,变量在当前系统上内存中所占的字节数
怎么用
- sizeof(数据类型/变量名/常量)
注意:
- sizeof(字符型变量): 1个字节
- sizeof(字符型常量): 4个字节
原码 反码 补码
- 正数的原码反码补码都是一样的
- 负数:
- 原码: 二进制数 最高位是1
- 反码 符号位不变 其他位取反
- 补码 反码+1
按位与运算
1. 只要是按位运算:都需要转成二进制的补码形式进行计算
- 如果对应位都是1 那么结果是1
如果对应位不都是1 那么结果是0
口诀:同1则1,有0则0
按位或运算
只要是按位运算:都需要转成二进制的补码形式进行计算
口诀:有1则1,同0则0
按位取反运算
1. 只要是按位运算:都需要转成二进制的补码形式进行计算
- 口诀:
0变1 1变0
按位异或运算
1. 只要是按位运算:都需要转成二进制的补码形式进行计算
- 口诀:
相同为0 不同为1
交换2个数:int a = 10;int b = 20;方法一:int temp = a;a = b;b = temp;方法二:a = a+b;//a = 30 b = 20b = a-b;//a = 30,b = 10a = a-b;//a = 20,b = 10方法三:a = a ^ b;b = a ^ b;a = a ^ b;
按位左移或右移
1. 只要是按位运算:都需要转成二进制的补码形式进行计算
按位左移:
- 口诀:高位溢出舍弃,低位补0
- 8<<2: 相当于 8 * (2的2次方)
按位右移:
- 口诀:低位溢出舍弃,高位补符号位
- 16 >> 3:相当于 16 / (2的三次方)
- 150 >>2: 相当于150 / (2的2次方)
0 0
- 多文件开发 按位运算符 预处理指令 进制等
- 预处理指令和多文件开发 (理解)
- C# 关键字,运算符,预处理器指令
- C 碎片九 预处理&位运算&文件操作
- 预处理指令与进制
- 预处理命令与位运算
- 按位与、或等运算方法
- 使用 & ^ << 等 位符实现加法运算
- Java中的按位与(&)、按位或(|)、异或(^)等运算符
- 按位与,按位或,异或等运算
- Day12、预处理指令、宏定义、条件编译、多文件编程
- 12:预处理指令、宏定义、条件编译、多文件编程
- iOS开发#pragma预处理指令与_Pragma操作符
- 按位运算符
- 按位运算符
- 按位运算符
- 按位运算符
- 按位运算符& | ~ ^ >> <<
- AngularJS: controller as syntax
- 使用rem等比例缩放手机界面
- Android Studio意外结束,或电脑死机,导致大面积错误
- 使用C/C++中的宏
- java学习之路 之 高级类特性1-面向对象特征之二:继承及方法重写(override)
- 多文件开发 按位运算符 预处理指令 进制等
- Docker 1.12 Swarm 模式剖析
- 随机数安全那些事儿
- Hive 报错 java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode
- [BZOJ3832][Poi2014]Rally(拓扑序+线段树)
- 大型网站系统架构的演化
- 20160802
- Think In Java 笔记1 initialization & Cleanup
- Spark Streaming + Kafka direct 从Zookeeper中恢复offset