变量的定义
int i;
typedef int x;//定义一个int x数据类型
x a=10;
printf("size=%d",sizeof(i));//获取int类型长度(4个字节) system("pause");//不让窗体立即消失 循环
在c语言中,循环的变量必须在外面生命
int i
for(i=0;i<10;i++){
printf("i=%d",i);
} 指针变量
int i=10;
int* p;//声明一个指针变量
p=&i;//取出i的地址值,赋值给指针变量
*p取出指针指向的值 多级指针
int i=10;
int* p;
p=&i; int** s;
s=&p; int*** x;
x=&s; //取出i的值,这里有一个规律,前面有多少个*,取得时候就在签名加几个*
printf("i=%d",***x); 数组
数组的定义
int arr[3]或者int arr[]={1,2,3}; 遍历数组:
//1.普通方式
int i;
for(i=0;i<3;i++){
printf("arr[%d]=%d\n",i,arr[i]);
}
//2.通过指针方式获取 <*(arr+j)>
int j;
for(j=0;j<3;j++){
printf("arr[%d]=%d\n",j,*(arr+j));
} 结构的定义与使用
//1.定义结构体
struct person{
int age;
}
//2.结构体的使用
struct person p;
p.age=10;
printf("p.age=%d",p.age); 结构体指针变量的定义与使用
struct person{
int age;
} *p;//声明一个结构体指针变量 //动态申请内存空间
p=(struct person*)malloc(sizof(struct person));
p->age=18;
printf("p->age=%d",p->age); 函数的定义与使用
#include<stdio.h>
int sum(int x,int y);//声明一个函数
main(){
int x=10;
int y=10;
int z=sum(x,y);//调用函数进行求和运算
printf("z=%d",z);
system("pause");
}
//真实的函数
int sum(int x,int y){
return x+y;
} 函数的还可以直接定义
int sum(int x,int y){
return x+y;
}
main(){
int x=10;
int y=10;
int z=sum(x,y);//调用函数进行求和运算
printf("z=%d",z);
system("pause");
} 两个变量的交换
change2(int* x,int* y){
int z=*x;
*x=*y;
*y=z;
}
main(){
int x=1;
int y=2;
change2(&x,&y);
printf("x=%d\n",x);
printf("y=%d\n",y);
system("pause");
}
指针函数
#include<stdio.h>
int sum(int x,int y){
return x+y;
}
main(){
int (*s)(int,int); //定义一个函数指针
s=sum; //给函数指针赋值
int x=s(2,3);
printf("x=%d",x);
system("paud");
} 在结构体中使用函数指针
1.定义一个函数
2.顶一个结构体,并在结构体中 定义一个函数指针
3.在main函数中,定义一个结构体指针
4.通过结构体指针给函数指针赋值,以及成员赋值
#include<stdio.h>
//1.定义一个函数
int sum(int x,int y){
return x+y;
}
//2.顶一个结构体,并在结构体中 定义一个函数指针
struct stu{
int age;
//函数指针
int (*score)(int,int);
}
main(){
//3.定义一个结构体指针
struct stu* s=(struct stu*)malloc(sizeof(struct stu*)); //4.给函数指针赋值
s->score=sum;
//给结构体中成员属性赋值
s->age=s->score(1,2); printf("age=%d",s->age);
system("pause");
} 联合的定义与使用
//定义一个联合
union un{
int age;
char x;
}
main(){
union un abc;//定义一个联合变量
abc.age=10;
printf("age=%d\n",abc.age);
printf("x=%d\n",abc.x);
system("pause");
} 枚举的使用
//定义一个枚举,枚举中的成员都是一个整型常量值
enum mode{
a=100,//如果不赋值,默认从0开始,如果赋值则后面的一次加1
b
}
main(){
//定义一个枚举变量
enum mode m=a;
printf("m=%d",m);
system("pause");
} 类型说明
typedef int xx ;
xx a=100; define指令,定义全局内容;在c中1代表真,0代表假
#define TRUE 1;
#define FALSE 0;
if(TRUE){
....
}else{....} 定义一个全局方法
#define Max(x,y) (x>y)?x:y 动态数组
int* arr=(int*)malloc(4*10);
文件读取
int main(){
FILE* fp;
char ch;
if((fp=fopen("mm.txt","rt"))== NULL){
printf("文件不存在or读取失败\n");
}else{
//怎么读取文件的内容?
ch=fgetc(fp);//从流里面获取字符
while (ch!=EOF)
{
putchar(ch);//在stdout上输出字符
ch=fgetc(fp);
}
fclose(fp);//关闭一个流
}
system("pause");//暂停 让cmd窗口不消失
} jni开发流程:
1 新建一个android工程
2 add native support 生成jni文件夹 Android.mk文件 + xx.cpp文件
3 修改文件 Android.mk .cpp 改为.c xx.cpp文件 改为.c
----------------------------------------------------------------------------
该工程可以进行ndk开发 4 在MainActivity.java里面添加一个native方法 public native String getString();
5 生成头文件
cmd
cd /d 工程的src目录
javah com.itcast.jni1.MainActivity 在src生成一个 com_itcast_jni1_MainActivity.h
----------------------------------------------------------------------------
生成了头文件 6 把com_itcast_jni1_MainActivity.h 复制到jni下面,拷贝里面的方法到.c文件
7 完成.c文件内容的编写
----------------------------------------------------------------------------
c代码编写完成 8 编译c代码
右键工程 --》 Build configuration --> buill all 生成.so文件 9 加载动态链接库文件
static{
System.loadLibrary("hello");
} 10 调用native方法

Android的JNI开发的更多相关文章

  1. Android Studio JNI开发入门教程

    Android Studio JNI开发入门教程 2016-08-29 14:38 3269人阅读 评论(0) 收藏 举报  分类: JNI(3)    目录(?)[+]   概述 在Andorid ...

  2. android下JNI开发

    android下JNI开发 what 什么是JNI JNI java native interface native本地 java本地接口 通过JNI可以实现java和本地代码之间相互调用 jni可以 ...

  3. Android Studio JNI 开发简单案例

    转载:http://www.androidchina.net/5744.html 进程保活,热修复,硬件接入等等都需要底层的支持,而底层代码是 C .C++ 写的,那么在 Android 中怎么调用底 ...

  4. 实现Android Studio JNI开发C/C++使用__android_log_print输出Log

    相信很多人在刚开始学习Android JNI编程的时候,需要输出Log,在百度Google搜索的时候都是说需要在Android.mk中加入LOCAL_LDLIBS+= -L$(SYSROOT)/usr ...

  5. NDK工具开发Jni,Android studio jni开发

    NDK工具开发JNI 对于JNI的作用,我这边就不详细说明了,百度google 有很多这样的介绍,这边着重详解AS使用NDK工具开发,调C的流程. 1,创建工程 2,创建native方法 //该类的路 ...

  6. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  7. Android游戏开发实践(1)之NDK与JNI开发01

    Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...

  8. Android游戏开发实践(1)之NDK与JNI开发02

    Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...

  9. android JNI开发

    1.NDK简介 NDK(Native Development Kit)NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.NDK集成了交叉 ...

随机推荐

  1. troubleshooting tools in JDK 7--转载

    This chapter describes in detail the troubleshooting tools that are available in JDK 7. In addition, ...

  2. Getting Started with the NDK

    The Native Development Kit (NDK) is a set of tools that allow you to leverage C and C++ code in your ...

  3. jquery $('#btn').click与$("#btn").live("click",function()有什么区别?

    live方法绑定的事件处理函数,在页面中未来添加的元素只要满足原来的选择器,仍然会导致事件触发.普通的事件绑定则没有这个效果.对于#btn这个选择器来说,如果你未来将id为btn的元素删除,然后再创建 ...

  4. android编译系统学习

    近日接手了后续android新平台项目搭建的任务. 本文内容基于sprd公司提供的android5.1源码. 一.一般的编译工作流程 我们代码一般情况下是从芯片商SPRD/MTK获得的. 源码的编译上 ...

  5. Cognos开发报表如何隐藏列

    情景:当报表必须用到一列的存在,但是不需要显示该列的时候,我们就需要隐藏该列了,所有对象. 如何隐藏呢? 步骤1:选择要隐藏列的列标题和列正文两个部分 步骤2:分别找到左侧属性的条件样式,新建条件样式 ...

  6. iOS和hybird移动端性能

         作为一名写了⑦年代码的程序员,目前我最擅长的领域是IOS的客户端开发,在移动领域的开发时间2年. ⑦年前,我刚入行的时候,曾经认为自己将会永远做一个LINUX 服务端C++程序员,于是花了大 ...

  7. POJ 2230 (欧拉路)

    分析: 基础的欧拉路算法,变化在于要求每条边正向和反向各走一遍. 链式前向星构图,只要标记走过的单向边,边找边输出即可. code #include <iostream> #include ...

  8. Qt中widget重新setParent需要注意的问题

    有时候需要在widget中重新setParent,但会发现setParent有时候会出现问题,比如子窗口不在刷出来等等. 其实,有一点是需要注意的,就是Qt文档里说的,如果你当前widget重新设置了 ...

  9. Spring AOP原理及拦截器

    原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP将应用系统分为两部分,核心业务逻辑(Core bu ...

  10. android布局1

    第二类:属性值必须为id的引用名“@id/id-name” 仅RelativeLayout中有效    android:layout_below      在某元素的下方     android:la ...