JNI java本地开发接口
JNI 是一个协议
这个协议用来沟通java代码和外部的本地代码(c/c++).
通过这个协议,java代码就可以调用外部的c/c++代码
外部的c/c++代码也可以调用java代码
* 输出
#include //standard input output
#include main(){
printf("小志的逗比精神永存 ");
system("pause");
}
* C调用java的hello
public classHello
{public static voidmain(String[] dd){
System.out.println("hello from java");
}
}
#include #includemain(){
printf("hello from c ");
system("java Hello");
system("pause");
}
* C的基本数据类型,
char, int, float, double, long, short, signed, unsigned
#java的基本数据类型长度
* byte:1
* short:2
* int:4
* long:8
* boolean:1
* char:2
* float:4
* double:8
#c的基本数据类型长度
* short:2
* int:4
* long:4
* char:1
* float:4
* double:8
#include #includemain(){//char, int, float, double, long, short, signed, unsigned
int i =3;char c = ‘a‘;long long ago = 12314324;short int i2 = 2;long int i3 = 3243;//printf("i的值为%d ", i);
printf("char的长度:%d ", sizeof(char));
printf("int的长度:%d ", sizeof(int));
printf("float的长度:%d ", sizeof(float));
printf("double的长度:%d ", sizeof(double));
printf("long的长度:%d ", sizeof(long));
printf("short的长度:%d ", sizeof(short));
printf("long long的长度:%d ", sizeof(long long));
printf("short int的长度:%d ", sizeof(short int));
printf("long int的长度:%d ", sizeof(long int));
system("pause");
}
* 输出函数
#include #include
/*%d - int
%ld – long int
%hd – 短整型
%c - char
%f - float
%lf – double
퀹符号数
%x – 十六进制输出 int 或者long int 或者short int
%o - 八进制输出
%s – 字符串*/main(){int i = -3;long l = 34567;char c = ‘a‘;float f = 3.1466666666;double d = 3.1466666666;char arr[] = "小志的二逼精神永存";
printf("%c ", c);
printf("%d ", i);
printf("%f ", f);
printf("%lf ", d);
printf("藜34;, i);
printf("%#x ", l);
printf("%#o ", l);
printf("%s ", arr);
system("pause");
}
* 输入函数
#include #includemain(){
printf("请输入班级人数: ");intnumber;//&:取出number的内存地址
scanf("%d", &number);
printf("请输入班级名称: ");char name[10];
scanf("%s", &name);
printf("number的地址%#x ", &number);
printf("name的地址%#x ", &name);
printf("班级人数为%d,名称为%s ", number, name);
system("pause");
}
“*”的三种用法
1. 乘法
2. int* p:定义一个指针变量p,p中存放一个内存地址,这个地址所存放的数据规定是int型
3. *p:取出p中保存的内存地址存放的数据
* 指针和指针变量的关系
指针就是地址,地址就是指针
地址就是内存单元的编号
指针变量是存放地址的变量
指针和指针变量是两个不同的概念
但是要注意: 通常我们叙述时会把指针变量简称为指针,实际它们含义并不一样
* 为什么使用指针
指针的重要性
直接访问硬件 (opengl 显卡绘图)
快速传递数据(指针表示地址)
返回一个以上的值(返回一个数组或者结构体的指针)
表示复杂的数据结构(结构体)
方便处理字符串
指针有助于理解面向对象
#include #includemain(){int i = 3;//定义一个保存int类型数据的地址的指针变量 ,该变量的值是一个内存地址
int* p = &i;int** q = &p;
printf("i的地址%#x ", p);
printf("i的值为%d ", *p);
printf("i的值为%d ", **q);
system("pause");
}
#include #includemain(){//野指针:没有赋值的指针
int*p;inti;double d = 3.14;
p= &d;//*p = 23;
printf("%#x ", p);
printf("%lf ", *p);
system("pause");
}
* 值交换(值传递: 所有语言所有平台,都只有值传递,引用传递传递的值是内存地址)
#include #include
void swap(int* p, int*q){int temp = *p;*p = *q;*q =temp;
}
main(){int i = 3;int j = 5;
printf("i=%d ", i);
printf("j=%d ", j);
swap(&i, &j);
printf("i=%d ", i);
printf("j=%d ", j);
system("pause");
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.bhha.com.cn/news/9548.html