
c
文章平均质量分 58
hudan2714
为梦想一直在努力奋斗。
展开
-
c语言
c库:标准C库里提供了很多的函数,只要在程序里包含了C库中对应的头文件(函数声明),就可以使用这些库函数了。 #include printf -- 标准格式化输出函数 scanf -- 标准格式化输入函数 数值数据的表示:凡是按进位的方式计数的数制叫做进位计数制,简称进位制。 十进制、二进制、十六进制、八原创 2012-06-03 21:37:46 · 514 阅读 · 0 评论 -
jni使用基础(六)之在c代码中使用logcat
在C代码中使用logcat:1.在Android.mk文件中增加LOCAL_LDLIBS += -llog // -l 是(-lab)增加库文件的语法,是在编译时,使用该库需要的语法。 // log 是在ndk中的liblog.so文件 若再需要增其它的库,只需","分隔:如:LOCAL_LDLIBS += -llog, -lGLESv2原创 2012-05-24 12:17:36 · 941 阅读 · 0 评论 -
jni使用基础(五)之ndk常见错误
常见错误:1.方法名与c语言实现的签名不对应。 异常:UnsatisfiedLinkError 2.如果在执行ndk-build时,出现make:*** Error 1 Error的id为1,C代码的源文件出现了问题。 从上往下解决异常。 3.android.mk文件配置错误 mak:*** No rule to make t原创 2012-05-24 11:29:21 · 753 阅读 · 0 评论 -
jni使用基础(三)之Android.mk文件详解
Android.mk文件详细说明:LOCAL_PATH:=$(call my-dir)//调用编译链的函数 LOCAL_PATH是定义源文件在哪个目录用的.my-dir 是个定义的宏方法, $(call my-dir)就是调用这个叫 my-dir的宏方法,这个方法返回值就是Android.mk文件所在的目录 include $(CLEAR_VARS)//类似工具的初始化操作原创 2012-05-24 09:52:05 · 970 阅读 · 0 评论 -
jni使用基础(四)之javah生成头文件
javah使用:帮助我们生成头文件的工具 怎样使用javah?1.先在命令行下运行:javah。如果能执行java而不能执行javah,就需要配置环境变量。2.cd进入到java的目录文件下,先用javac把.java文件生成.class文件。3.在.class文件目录下执行javah,生成头文件(注意:.class文件要在相对应的包目录结构下)如:用eclipse的工程,原创 2012-05-24 11:09:42 · 2803 阅读 · 0 评论 -
jni使用基础(七)之java调用c事例Demo
1.界面:package com.devchina.ndk3;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Toast;public class DemoActivity extends Activity { static{原创 2012-05-24 18:07:48 · 910 阅读 · 0 评论 -
jni使用基础(八)之jni使用流程及C调用java简单说明
jni使用步骤:1.定义好native接口。2.使用javah工具,生成头文件。3.根据头文件,创建c文件。4.编写Android.mk文件。5.通过cygwin,进入到该工程目录,通过ndk-buld命令,编译c文件,生成so库文件6.即可完成调用 怎样在c中调用java?也就是要在c代码中,new出java对象,然后再调用java对象中的方法即可。原创 2012-05-25 10:58:15 · 716 阅读 · 0 评论 -
jni使用基础(九)之c调用java事例demo
1.Activitypackage com.devchina.ndk4;import android.app.Activity;import android.os.Bundle;import android.view.View;public class DevchinaActivity extends Activity { @Override publ原创 2012-05-25 12:41:31 · 880 阅读 · 0 评论 -
Jni使用基础(一)之简单介绍说明
JNI(Java Native Interface,JAVA原生接口) Jni 是一个协议,用来沟通java代码和外部的本地代码(c/c++)相互调用。 为什么要进行交互? 首先,Java语言提供的类库无法满足要求,且在数学运算,实时渲染的游戏上,音视频处理等方面上与C/C++相比效率稍低。 然后,Java语言无法直接操作硬件,C/C++代码不仅能操作硬件而且还能发挥硬件最佳原创 2012-05-22 22:42:16 · 733 阅读 · 0 评论 -
位运算小结操作
一、前言输入2 的n 次方: 如果突然要你输入2 的19 次方,你是不是还要想一下呢?敲个524288 多累啊。用位运算:1 乘除2 的倍数: 千万不要用乘除法,非常拖效率。只要知道左移1 位就是乘以2 ,右移1 位就是除以2 就行了。比如要算 25 * 4 ,用25 判断偶数: a % 2 取模是最常用的判断方法之一。这样要用到除法运算,不好。实际上,还是用位运算转载 2012-07-03 13:10:16 · 833 阅读 · 0 评论 -
语言堆栈入门——堆和栈的区别
原文:http://student.youkuaiyun.com/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html格式和部分内容稍作修改。在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是转载 2012-08-03 10:10:37 · 533 阅读 · 0 评论 -
C语言的编译过程
C语言的编译链接过程要把编写的c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链转载 2012-07-19 22:53:20 · 665 阅读 · 0 评论 -
C调用C++
C调用C++链接库: 1.编写C++代码,编写函数的时候,需要加入对C的接口,也就是extern “c" 2.由于C不能直接用"class.function”的形式调用函数,所以C++中需要为C写一个接口函数。例如本来要调用student类的talk函数,就另外写一个cfun(),专门建一个student类,并调用talk函数。而cfun()要有extern声明 3.转载 2012-08-08 13:03:49 · 675 阅读 · 0 评论 -
用c语言产生随机数总结
在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( i转载 2012-08-08 13:14:38 · 858 阅读 · 0 评论 -
c语言基础(六)之类型
多级指针简单demo:main(){ int i = 5;int* p = &i;int** q = &p;int*** r = &q;printf(" i 的值=%d\n", ***r);//打印结果为5} 函数指针demo:int add(int x,int y){ printf("x+y=%d\n",x+y);} mai原创 2012-05-22 20:07:50 · 582 阅读 · 0 评论 -
c语言基础(五)之内存、堆栈区
指针运算:指针的运算在数组的运算中才有意义。其它指针操作的运算都无意义。 只要是指针类型,它在内存中所占的长度都是4个byte。(前提是32位系统) 传统数组被创建出来,它是被创建在栈空间上的。也就是说程序员没有办法去清空栈空间上的内容。 动态内存分配:使用malloc函数,能够动态分配内存。注意要引入#include函数头文件malloc(a);a表示in原创 2012-05-22 19:04:04 · 632 阅读 · 0 评论 -
c类型总结
基本数据类型:逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。用Int表示(0:false;非0:true)整数类型。C支持四种整数类型:char, short, int和long,整数类型用于处理整数。浮点类型。C支持两种浮点类型:float和double,浮点类型用于处理包含小数部分的数值。void类型。该类型也叫缺省型,用于描述值为空集, 主要用于说明不返回原创 2012-06-03 21:55:21 · 755 阅读 · 0 评论 -
c语言字符串函数
字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面返值:返回字符数组1的首地址说明:字符数组1必须足够大 连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消, 新串最后加‘\0’ 字符串拷贝函数strcpy格式:strcpy(字符数组1,字符串2)原创 2012-06-03 22:21:34 · 649 阅读 · 0 评论 -
c语言数据输入输出
C语言无I/O语句,I/O操作由函数实现 #include 字符输出函数格式: putchar( c )参数: c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值; 格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)输出表:要输出的数据(可以没有,原创 2012-06-03 22:05:02 · 568 阅读 · 0 评论 -
c语言数组
数组构造数据类型之一数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素。数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。在科学计算中,许多重要的应用都是基于数组的。所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。C语言中,一维数组的说明一般形式如下: [] ; 数原创 2012-06-03 22:15:45 · 431 阅读 · 0 评论 -
计算机存储
冯﹒诺依曼模型:系统在预先编译的程序的指挥下运转,系统的运行过程就是按照一定的顺序不断执行程序指令的过程程序存放在存储器中程序是为了实现一个特定的目标而预先设计的一组可操作的工作步骤,就可以称为一个程序。对于计算机系统,程序就是系统可以识别的一组有序的指令。这组指令指挥这计算机系统工作。对于计算机系统,简单的说,程序就是系统可以识别的一组有序的指令程序存储在磁盘上,被加载到内存原创 2012-06-03 22:10:49 · 567 阅读 · 0 评论 -
linux知识
vi—命令模式: 不保存退出 不保存强制性退出 保存编辑 存入文件filename 中 强制性存入文件filename 中 保存并退出 gcc(GNU CCompiler)是GNU推出的功能强大,性能优越的多平台编译器,gcc编译器能将C,C++语言源程序编译连接成可执行文件,以下是gcc支持编译的一些源文件的后缀及其解释原创 2012-06-03 21:40:48 · 412 阅读 · 0 评论 -
c语言排序
冒泡法排序:排序过程:(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束例:int main(原创 2012-06-03 22:17:44 · 503 阅读 · 0 评论 -
lame音频压缩解码(二)之编译事例Demo
简单步骤:一、下载lame存文件。二、创建android工程后,解压lame包,拷贝lame文件夹中的libmp3lame文件下的所有.c和.h文件到android工程的jni目录下。三、从lame包中的include文件夹中,拷贝 lame.h到jni目录下。四、定义natvie方法。五、在jni目录下,编写android.mk文件。六、进入工程的bin/classes目原创 2012-06-03 19:11:48 · 4778 阅读 · 6 评论 -
程序装载及执行说明
程序执行流程:java 程序代码执行流程: java源文件----->java编译器------>java字节码(class文件)----->类装载器------> java解释器/编译器加载到运行时系统(java虚拟机)----->操作系统---->硬件 怎样把程序装载到操作系统中? 系统给每个程序把内存分成四个分区:原创 2012-05-22 14:49:19 · 623 阅读 · 0 评论 -
数据类型
学习程序,应从最基本的类型开始,好高骛远的学习,是没有学习的根基。 大楼地基不好,建再高的楼也很容易倒塌。 java基本类型: 数据类型关键字占用比特数(位)字节数取值范围缺省数值 布尔型boolean 8 1true,false原创 2012-05-21 09:42:18 · 492 阅读 · 0 评论 -
C语言基础(一)之数据类型及指针
C的基本数据类型包括:字符型(char)、整形(int/short/long)和浮点型(float/double)。 导出数据类型包括:T*(指针类型),enum(枚举),struct{....}(结构体类型),union{...}(共用体类型),T[...]数组类型,文件类型和函数类型 c语言输入输出函数:%d int%ld long int%c原创 2012-05-21 15:53:50 · 605 阅读 · 0 评论 -
c语言基础(二)之指针事例
这章主要讲解指针:Demo事例说明:#includemain(){ int i = 3;//定义一个变量 ,变量名为i,变量类型为int类型int* p ; //定义一个变量,变量名为p,变量类型为int*类型 //int* 类型是一个指针变量,是一个存放地址的类型,只能存放int类型数据的地址 //int** 是一个存放指针原创 2012-05-22 13:05:42 · 465 阅读 · 0 评论 -
c语言基础(三)之数据交换
简单数据交换Demo: #includemain(){ int i=3; int j= 5; int temp ; temp = i; i = j; j = temp; printf("i = %d\n",i); printf("j = %d\n",j);原创 2012-05-22 13:36:59 · 663 阅读 · 0 评论 -
c语言基础(四)之指针
c语言指针常见错误1.未经过初始化的指针变量,不能被使用2.指针类型,需要根据不同的变量类型,定义不同的指针,不同的指针类型,不能相互转化。3.函数的变量不能跨函数使用。(不能使用指针去访问已经失去作用范围的变量。 如:主函数去使用子函数变量的值是不行的) c语言*号的原创 2012-05-22 16:44:34 · 408 阅读 · 0 评论 -
堆和栈的区别
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2012-08-08 10:28:05 · 614 阅读 · 0 评论