这段时间的我会讲解Android NDK开发及其相关内容,通过我的讲解分享能让新手们掌握Java层与Native层之间是如何进行通信的。尽我的能力给到你们帮助。
了解C语言
C语言的诞生是现代程序语言革命的起点。今天C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。C语言由丹尼斯.里奇开发,被称为C语言
1.1 C/C++概念:当代最优秀的程序设计语言
C/C++是当代最优秀的程序设计语言。C语言是C++的基础,C++和C语言在很多方面是兼容的。
C语言是一个结构化语言,它的重点在于算法与数据结构。C语言用于嵌入式开发和程序结构优化。C++首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事物)控制。
所以C语言和C++的最大区别在于它们解决问题的思想方法不一样。
因为在后面的学习当中用到的都是C语言的内容,所以C++这部分内容不做过多讲解,感兴趣的可以课后去了解下C++语言。
1.2 C的令牌
C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
例如:
}#include
int main()
{
/* 我的第一个 C 程序 */
printf(“Hello World! \n”);
return 0;
在这里需要强调的是分号(“;”),在 C 程序中分号是语句结束符,跟汉语言里的句号(“。”)一个概念。它表明一个逻辑实体的结束,每个语句必须以分号结束。
1.3 注释
C语言有两种注释,分别是:
第一种:以“//”格式开始的是单行注释,这种注释可以单独占一行。
第二种:以“/* */”格式的注释可以注释单行或多行。
1.4 标识符
C标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母A-Z或a-z或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
C标识符内不允许出现关键字及特殊字符,比如@、$和%。C是区分大小写的编程语言。因此,在C语言中Manpower和manpower是两个不同的标识符。
下表已列出10个有效的标识符:
mohd
zara
abc
move_name
a_123
myname50
_temp
j
a23b9
retVal
1.5 关键字
下表列出了C中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
关键字
描述
关键字
描述
auto
声明自动变量
int
声明整型变量或函数
break
跳出当前循环
long
声明长整型变量或函数返回值类型
case
开关语句分支
register
声明寄存器变量
char
声明字符型变量或函数返回值类型
return
子程序返回语句(可以带参数,也可不带参数)
const
声明只读变量
short
声明短整型变量或函数
continue
结束当前循环,开始下一轮循环
signed
声明有符号类型变量或函数
default
开关语句中的"其它"分支
sizeof
计算数据类型或变量长度(即所占字节数)
do
循环语句的循环体
static
声明静态变量
double
声明双精度浮点型变量或函数返回值类型
struct
声明结构体类型
else
条件语句否定分支(与 if 连用)
switch
用于开关语句
enum
声明枚举类型
typedef
用以给数据类型取别名
extern
声明变量或函数是在其它文件或本文件的其他位置定义
unsigned
声明无符号类型变量或函数
float
声明浮点型变量或函数返回值类型
union
声明共用体类型
for
一种循环语句
void
声明函数无返回值或无参数,声明无类型指针
goto
无条件跳转语句
volatile
说明变量在程序执行中可被隐含地改变
if
条件语句
while
循环语句的循环条件
1.6 C指针
指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明。
指针变量声明的一般形式为:type yijindaxue;
type 是指针的基类型,它必须是一个有效的C数据类型,yijindaxue是指针变量的名称,星号用来声明指针,与乘法中使用的星号是相同的。但是,在这个语句中星号*是用来指定一个变量是指针。
下表是有效的指针声明:
int *ip;
* 一个整型的指针 *
double *dp;
* 一个 double 型的指针 *
float *fp;
* 一个浮点型的指针 *
char *ch;
* 一个字符型的指针 *
所有实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,对应指针值的类型都是一样的,都是一个代表内存地址长度为十六进制数。
实例:
探究实例中#include 是什么?
今日学习分享到这结束,明天会持续更新的,并解答。
想跟着我学习进步的的朋友记得关注收藏点赞哦。
安卓逆向交流群643060786微信yijin1108an