gcc编译器与基本类型3
C语言发展史
1969年
贝尔实验室 肯尼斯·蓝·汤普逊,丹尼斯·李奇
开发了B语言 -》Unix,New B语言,改名C语言
83年提出C语言标准
1989年十二月正式通过C语言标准,C89标准
C primegraimer
94年提出C语言标准
1999年 C99标准通过
C语言的特点:
优点:高效、可移植,功能强大、灵活
缺点:C语言的错误容易隐藏。(段错误)
C语言很难理解
1.gcc编译器
2.注释
3.变量
4.标示符
5.c语言的基本数据类型
6.进制转换
1.gcc编译器
gcc编译命令 GNU编译器
#include 预处理指令
<3>.指令指令:我们把预处理器执行的命令称为指令。
c程序就是函数的集合。
<1>.函数 函数分为两大类:1、程序员自己编写的。
2.库函数。
main函数:main函数是一个函数,它会在程序终止时
向操作系统返回一个状态码。
<2>.语句 语句:程序运行时执行的命令。
return语句
#include"head.h" //自己写的头文件
#include<stdio.h> //系统定义的头文件。
path 环境变量 标注了库函数存放的路径以及系统函数存放的路径
<>
"" cong当前目录开始找头文件,当前找不到去环境变量里去找
1.gcc编译器
gcc编译命令 GNU 编译器
编译器通常要求带上文件的扩展名.c
#include 预处理指令
include 包含
stdio.h 文件
main() 函数 主函数 ,程序的入口
任何一个程序都是从main函数开始以main函数结束
printf 在控制台打印
把程序转化成可执行的形式通常包含三个步骤:
预处理(预处理器) 编译(编译器) 链接(链接器)
2.环境变量
vi .bashrc 编辑环境变量命令,尽量不要随便改写
计算机 -》右键属性 -》高级系统设置-》 编辑
source .bashrc 重新配置环境变量
必须在主文件目录下编辑
编译过程 gcc hello.c
执行过程 a.out 或 ./a.out
环境变量举例
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98
bin 文件夹里都是命令
PATH=.:PATH 这句话什么意思?
¥ PATH 取 path的值 PATH是变量
用户环境变量
系统环境变量
sleep 100 系统睡眠一百秒
ctrl + c 终止命令
ctrl + d 退出
ctrl + z 让当前程序到后台执行
jobs 列出在后台执行的所有进程
fg 3 把后台执行的进程3调到前台
gcc 完成 两个工作 :编译、链接
gcc -c 只编译不链接
gcc 链接 编译加链接
gcc -E 只预处理
gcc -S 生成汇编语言
gcc hello.c -o hello 给可执行程序重命名
gcc -help 看其他命令
gcc -std =c89指定标准
2注释:
单行注释 和 多行注释
//单行注释 仅在c99标准中支持,一双斜线开始
/*多行注释 中间写多少行都没关系*/
多行注释不可以嵌套
3基本类型
本质:是内存的一块命了名的区域&salary。
当我们访问变量的时候其实就是访问这块存储空间。
变量的类型:c语言有很多种类型包括:基本数据类型和复合数据类型。
基本:int,char,float。double。 short
占字节数 4 1 4 8 byte 2
类型给定了变量的大小
复合数据类型:字符串,
所有的字符在内存中都对应一个数字,
a=97 并以字符的形式存在内存中;
变量的生命:c89要求先声明后使用,一般给出是指,
不赋初始值变量的值是不确定
c99增强了变量的使用,使用前在声明
空格 32
sizeof(类型或变量);查看数据类型所占的字节数
sizeof()为c语言的关键字,或运算符但不是函数。
3.1 字符
1.‘a’字符的一种表现形式
2.字符的另一种表现形式‘\n'转义字符
\t = Tab
\b = backspace
\\=\ 转义为\
3.2 int 整数:
所占的字节=4个字节
短整数 short 2
整数 int 4
长整数 long 4(32位) 8(64位)
short s=9; //0000 0000 0000 1001 16位=两个字节
short s=-1 // 最高位为符号位 1为负 0为正
//1111 1111 1111 1111 补码去符号 整数值 按位取反加1
练习:写出-57和-119在内存当中的基本形式(按位取反加1)
- 57 1111 1111 1100 0111
-119 1111 1111 1000 1001
c89标准先声明后使用,一般要求你赋初值
printf("") ; //格式化输出
整数常量
short s2=3.5 ; //double
3.5f; //float
3.5L; //long double
35L; //long int
4.标示符
变量名:1.可以是数字,字母,下划线;数字不能打头
2.大小写敏感
max Max mAx
3.声明不能与关键字冲突;
4.c89要求长度不能超过31个字符,c99不能超过63个字符
return 0;程序结束
6、进制转换。
11 十进制
011 八进制
0x11 十六进制
二进制,机器可以识别
十进制。
八进制。
十六进制。
1.二进制
二进制转十进制
0111 1101
权重:0*2(7)+1*2(6)+1*2(5)++1*2(4)
权数:2,10
对应位的数字乘以权重,计算和
十进制转二进制:
119:拆分:64+32+16+4+2+1
规范方法:除2取余 余数倒序排列就是二进制形式。
-119
补码:0111 0111 取整数部分 按位取反在加1得负数
1000 1000 -》1000 1001=-119
表示负数的二进制转换成十进制
1110 1110.
0001 0010-》16+2=18 -18 按位取反加1 zai加上符号位
-》1110 1101 -》1110 1110
八进制:
017 八进制-》十进制
权重:1*8(1)+7*8(0)=15
对应为的数字乘以权重,计算和
十进制转八进制
15-》8+7 -》0000 1111 -》00 001 111
十六进制:
十六进制转十进制
0xFF 0 9 a b c d e f
10 11 12 13 14 15 16
15*16(1)+15*16(1)=255
十进制转十六进制
128=1000 0000=0x80
0xFFFF FFFF 表示-1 无符号数位42 000 000 000
0277777 77777
199 -》0111 0111 周三没航班
gcc编译器与基本类型3的更多相关文章
- GCC编译器使用
一.GCC简介 通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进 ...
- Lambda表达式(C语言-gcc编译器)
前言 先来啰嗦几句,身边的朋友,同事都喜欢在博客上记录自己在学习计算机编程技术路程上的一些问题和心得.就我个人而言,这是个好习惯,特别是在计算机编程领域,技术方向种类繁多,永无止境.所以,我也开始我人 ...
- gcc编译器对宽字符的识别
最早是使用VC++工具来学习C++,学的越多就越对VC挡住的我看不见的东西好奇,总想多接触一些开发环境,今日抽空摸索了一下CodeBlocks这个开源的IDE使用方法,配置的编译器是MinGW的gcc ...
- GCC编译器原理(一)------交叉编译器制作和GCC组件及命令
1.1 交叉编译器制作 默认安装的 GCC 编译系统所产生的代码适用于本机,即运行 GCC 的机器,但也可将 GCC 安装成能够生成其他的机器代码.安装一些必须的模块,就可产生多种目标机器代码,而且可 ...
- 2、GCC编译器的使用
GCC编译器是一个非常强大和流行的C编译器,适用于各种Linux发行版.本文解释了一些流行的GCC编译器选项. GCC编译器选项 1.指定输出可执行文件名称 在最基本的形式中,gcc编译器可以用作: ...
- 关于gcc编译器中函数不用进行原型声明的解释
经过大量实验和参考网上的说法得出一个结论: gcc编译器中,函数可以不用提前进行原型声明,编译器会把函数调用同时认为是声明.需要注意的是,由于函数调用的时候并没有写明函数返回值,这是gcc把调用当成声 ...
- GCC编译器基础入门
导语 GCC(GNU Compiler Collection,GNU 编译器套件) 是由 GNU 开发的编程语言编译器,支持C.C++.Objective-C.Fortran.Java.Ada和Go语 ...
- gcc编译器参数
[gcc编译步骤] 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs] 3.由汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4 ...
- <2013 08 09> __attribute__是GCC编译器特有语法
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关,g ...
随机推荐
- POJ1182 食物链
并查集经典题1. 向量的思考模式2. 再计算向量时,要画图:有一个关系一开始写错了3. 本人的norm函数一开始x >= 3写成了 x>3,应该对这种小函数多做UT(口头上的,比如)4. ...
- 【mongoDB中级篇①】游标cursor
简述 通俗的说,游标不是查询结果,可以理解为数据在遍历过程中的内部指针,其返回的是一个资源,或者说数据读取接口. 客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量 ...
- Android:Context的作用
Context字面意思上下文,Activity中我们直接用this代替,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,改用ActivityName.t ...
- Linux autoconf和automake使用
作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Mak ...
- Linux 查找软件安装路径
root@kali:~# whereis sqlmap sqlmap: /usr/bin/sqlmap /usr/share/sqlmap /usr/share/man/man1/sqlmap..gz ...
- Intellij IDEA 快速创建Spring Web 项目
相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.baidu.com/s/1dEstJ5f Tomcat(ap ...
- UDP丢包和无序 问题的解决方法
最近在做一个项目,在这之前,做了个验证程序. 发现客户端连续发来1000个1024字节的包,服务器端出现了丢包现象. 纠其原因,是服务端在还未完全处理掉数据,客户端已经数据发送完毕且关闭了. 我用过s ...
- How to learn linux device driver
To learn device driver development, like any other new knowledge, the bestapproach for me is to lear ...
- hibernate--lazy(懒加载)属性
关联映射文件中<class>标签中的lazy(懒加载)属性 Lazy(懒加载):只有在正真使用该对象时,才会创建这个对象 Hibernate中的lazy(懒加载):只有我们在正真使用时,它 ...
- Hibernate--基本映射标签和属性介绍
一.映射文件的基本结构举例: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hiberna ...