返回

NDK 系列(一):C 语言入门指南

Android

引言

NDK(Native Development Kit)是 Android 开发中不可或缺的工具,它允许开发者使用 C 或 C++ 等原生语言编写 Android 应用程序。C 语言作为 NDK 的核心语言,以其高效、底层和可移植性而闻名。本文将带您踏上 C 语言学习之旅,从基础概念到实用技巧,应有尽有。

基本项目结构

创建一个 C 语言项目时,您将遇到以下基本文件结构:

  • main.c:包含程序的入口点 main 函数。
  • Android.mk:NDK 构建脚本,指定如何构建项目。
  • Application.mk:项目级构建脚本,指定所有模块的通用设置。

基本数据类型

C 语言提供了各种基本数据类型,用于存储不同类型的数据:

  • 整型:intlongshort
  • 浮点型:floatdouble
  • 字符: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 系列的后续文章中,我们将深入探讨更高级的主题,例如线程、锁和内存管理。