返回
NDK 系列(一):C 语言入门指南
Android
2023-11-08 15:12:54
引言
NDK(Native Development Kit)是 Android 开发中不可或缺的工具,它允许开发者使用 C 或 C++ 等原生语言编写 Android 应用程序。C 语言作为 NDK 的核心语言,以其高效、底层和可移植性而闻名。本文将带您踏上 C 语言学习之旅,从基础概念到实用技巧,应有尽有。
基本项目结构
创建一个 C 语言项目时,您将遇到以下基本文件结构:
main.c
:包含程序的入口点main
函数。Android.mk
:NDK 构建脚本,指定如何构建项目。Application.mk
:项目级构建脚本,指定所有模块的通用设置。
基本数据类型
C 语言提供了各种基本数据类型,用于存储不同类型的数据:
- 整型:
int
、long
、short
- 浮点型:
float
、double
- 字符:
char
- 布尔型:
bool
(在 NDK 中定义为int
)
每个数据类型都有其特定的取值范围和字节大小。
基本数据类型所占字节数
数据类型 | 字节数 |
---|---|
char |
1 |
short |
2 |
int |
4 |
long |
8 |
float |
4 |
double |
8 |
地址与指针
在 C 语言中,每个变量都有一个地址,该地址表示其在内存中的位置。指针是一种指向变量地址的数据类型。
- 地址: 使用
&
运算符获取变量的地址,例如:int x = 10; int* ptr = &x;
- 指针取值: 使用
*
运算符解引用指针并获取其指向的变量的值,例如:*ptr = 20;
使用函数的时候传值
在 C 语言中,函数参数是按值传递的。这意味着当您将变量作为参数传递给函数时,函数将创建一个该变量的副本。对副本所做的任何更改都不会影响原始变量。
如果想修改值要传值所对应的地址才能修改
要修改函数中的原始变量,您需要将变量的地址作为参数传递,而不是变量本身。这样,函数可以访问原始变量并对其进行修改。
实例:交互两个数
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10, y = 20;
swap(&x, &y);
printf("x = %d, y = %d", x, y);
return 0;
}
总结
本文介绍了 C 语言的基本概念,包括项目结构、数据类型、指针和地址,以及函数传值机制。通过这些基础知识,您可以开始构建更复杂的 Android 原生应用程序。在 NDK 系列的后续文章中,我们将深入探讨更高级的主题,例如线程、锁和内存管理。