20150121 【 ARM 】 C语言+变量

13 篇文章 0 订阅
12 篇文章 0 订阅
2.c语言基础
编程规范
书写格式要缩进,括号对齐,模块空行
见其名知其意
变量命名,小写加大写  studentAge, 小写加下滑线 std_age
函数命令,小写加下划线 get_student_name()
注释:一般程序有效注释占代码20-30%
写代码先写框架(伪代码)
伪代码--注释加框架

保存结果int sum = 0;
计数用 int i=1;
while(i<100)
{
第一次 sum = i+sum
}
编译原理
机器语言(二进制)---》汇编(mov,ldr,add)---》高级语言(c语言, c++, c#, java)
编译型语言,解析型语言html

gcc编译器
预处理--把宏替换,头文件展开
gcc -E main.c -o main.i
编译--把c编译成汇编
gcc -S main.i -o main.s
汇编---把汇编代码编译成二进制
gcc -c main.s -o main.o
链接---把库和代码重定向
gcc -o main main.o
简化:
gcc -o main main.c

第一个c语言程序
//包含头文件<>只搜索系统路径,""搜索当前路径在搜索系统路径
#include<stdio.h> 

//c语言程序入口函数,从此开始和结束,有且只有一个
int main(void)
{
//函数调用---c库中的函数
printf("hello world");
//返回
return 0;
}


基本语法
基本数据类型,变量,常量,表示符,标准输入输出
基本数据类型---用来限制空间大小,合理利用内存
int, char, float, double ,bool
unsigned 等价 unsigned int
short 等价 short int
long 等价 long int

在32系统中(有符号---最高位1表示负数0表示正数,负数在内存中存储是补码形式存储)
int ---4 (11111111 11111111 11111111 11111111)-2^31 至 2^31-1
char ---1 ()-2^7 ----2^7-1
float ---4 ()
double ---8 ()
bool ----1
在32位系统中无符号

数据类型转换(自动转换,强制转换)
char --> short---》int ---》float ---》double(自动转换)
double--》float--》int---》short--》char(强制转换)
char a = 10;
int b = 266;
a = (char)b;

变量:特定数据类型的空间(容器)
int data=0;

标识符:数字,字母,下划线组成并且有下划线或字母开头 data, _data_, _data_1
表达式:标识符与运算符组成的式子:data>_abc
语句:表达式加分号;
关键字:基本数据类型,static, return, swtich,true,false, register, if, auto, const等等

常量:内存中的内容不能被改变
10, ‘A’, ”abc“

标准输入输出
输入格式化
%d---十进制数
%c---字符
%f---浮点型
%s---字符串
输出格式化
%d---十进制数
%c---字符
%f---浮点型
%lf---双精度浮点型
%s---字符串
%ld---长整型
%e---科学计算法
%o---八进制
%x---十六进制
%u---无符号
%p---地址
转意字符
\n---换行
\"---输出”号
\t---输出制表符(tab键)
\a---警报
\0---字符串结束符
\\---输出\

scanf, getchar
printf
printf格式化颜色和定位清屏
\033[x;ym ---x表示字体颜色(30--39)--y表示背景颜色(40-49)\033[0m--清除颜色设置
\033[2J
\033[x;yH
运算符
算术运算符,关系运算符 逻辑运算符,位运算符
算术运算符
+,-,*,/,%,+
+,--,-=, +=,*=,/=,%=
int a=3;

int b = a/2;
-------------------/
int a =
3;
float b =
a/2.0 ; b=1.5
-------------------%
int a=123
int b=a%2; b=1------取余必须是正整数
-------------------(++,--)
int a=10;
int b=a++; b=10---先用在加
int c=++a; c=11---先加再用
--------------------(-=)
int a=10;
a -= 1; ===> a=a-1;
关系运算符
> ,<, >=, <=, !=, ==
(0<x<10)---->x>0 && x<10
逻辑运算符
与,或,非
&&,||,!
真值表
与----遇0则0
或----有1则1
非----你真我假
int m=10;
m<0 && 1>0  ---如果&&前为假就不会运算后面的
m<0 || 1>0  ---如果||前面为真就不会运算后面的
位运算
&,|,~,^ ,>>, <<
进制转换
十进制-->二进制-->八进制
  -->十六进制
123-->(1,111,011)-->0173
 (111,1011)--->0x7B

二进制---》十进制
(1111011)---》123
练习:2015->(11 111 011 111)2-->(7df)16-->(3737)8
位与&或|非~
int m=10
int c=m&9;--->1010&1001=1000=8
int d=m|9;--->1010|1001=1011=11
int e=~m;---->~(1010)=0101=5
int f=m^9---->1010^1001=0011=3 (f=m^9^9)
课后练习
int a=10, int b=100 不用其他变量把a与b交换
左移<<  ---乘以2的n次方
右移>> ----除以2的n次方

例子:0xff55 ---把第9位取反 
0xff55 -->1111 1111 0101 0101-->1111 1101 0101 0101->0xfd55
 1111 1101 1111 1111(~(1<<9))
 1111 1101 0101 0101
0xff55&(~(1<<9))
1111 1101 0101 0101--->1111 1111 0101 0101
0000 0010 0000 0000
1111 1111 0101 0101
0xfd55|(1<<9)

控制流
do-while, while, for, if-else, switch-case, goto, break
return, continue
函数
函数定义, 函数参数, 函数递归
数组
一维, 二维
指针
指针变量, 指针常量, 指针与函数数组关系
结构体
结构体, 联合体, 枚举常量
内存空间


头文件,调试, 常量,
文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值