day2:gcc编译器、进制转换及C语言基础的数据类型和常量变量用法

一、gcc编译器:

1、一步编译:

gcc xxx.c ---->默认生成一个名为a.out的可执行文件 -----> ./可执行文件名 (./a.out)

-o参数

多个C程序只能保留同一个a.out,生成其他的可执行文件,实现可以同时保留多个源文件可执行文件。

gcc xxx.c -o hello ----->gcc编译后生成指定的hello可执行文件 -oout

./hello

gcc -o hello xxx.c ---->生成指定的hello文件,./hello

【2】分步编译 ESc->iso(笔试面试题)

预处理---->编译----->汇编----->链接

i)预处理 -E -o xx.i

gcc -E hello.c -o hello.i

展开头文件,替换宏定义,删除注释,不检查语法错误,生成编译文件

ii)编译 -S -o xx.s

gcc -S hello.i -o hello.s

检查语法错误,生成汇编文件

iii)汇编 -c -o xx.o

gcc -c hello.s -o hello.o

生成二进制文件

iv)链接

gcc hello.o -o hello

链接到程序执行所需要的动态库/静态库,生成可执行文件

运行程序, ./hello

二、数制转换:

各种进制转10进制:位码*该位的位权之和(如8进制是8^n,n从0开始)

10转N进制:辗转相除法

2、8、16进制间的转换,分别对应1、3、4位,

0b二进制前导符,0八进制前导符,0x/0X十六进制前导符

三、C语言数据类型:

基本数据类型:int、float、long

构造数据类型:数组、结构体、共用体

指针

void空类型

整形:short、int、long、longlong

浮点型:float、double

非数值类型:char

四、常量:

1、整形常量:120、19...        占位符用%d

2、浮点型常量:3.1415、小数        占位符用%lf

3、字符型常量:'a'、'0'、'\n'        占位符%c输出字符,%d输出字符对应的ascii值

4、字符串常量:"hello world"、"hqyj"        占位符用%s

5、宏定义常量:无参宏定义:#define 宏名 宏体

                           有参宏定义:#define 宏名(参数1,参数2,····) 宏体

                                                #defin ADD(a,b) a+b

     注意:宏定义是简单替换的过程,带参宏加#可输出字符串,宏定义不用加;

五、变量:

六种存储类型:

auto:自动类型,局部变量默认是auto,全局变量不能使用auto修饰

extern:引入外部文件中的变量,全局变量默认是extern类型 static:静态,

const:给变量常属性,const修饰的变量值不能被修改

register:寄存器类型,把变量定义到寄存器中,会提高访问速度,寄存器类型的变量不能取地址

volatile:每次从内存中取值

标识符的命名规范

  1. 由数字、字母和下划线构成
  2. 不能由数字开头
  3. 严格区分大小写
  4. 不能和C语言的32个关键字重复

强转的注意事项:

大的数据类型转小的数据类型是不安全的,会发生数据的丢失

小的数据类型转大的数据类型是安全的

原码、反码和补码

原码:数据的二进制 ----->给人能看懂的

反码:原码转补码的中间形式

补码:机器能读懂的

无符号数和有符号数的正数:原=反=补

有符号数的负数:原码除符号位都置反就是反码,反码加1就是补码

有符号数和无符号数

有符号数和无符号数一起参与运算时,会转成无符号数进行运算

默认变量都是有符号数,signed(有),unsigned(无),0正1负

计算机中数据存取问题:

机器数据存取是“原反补补反原”的步骤,进去看正负,出来看类型

作业:

1~2、4~5:有道云笔记

3:有道云笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值