C语言从入门到..

前言

由于前端时间的两个项目

  1. Mupdf来支持pdf的批注功能
  2. 录屏推流
    这两个的底层都是采用c和c++写的,并生成了对应的so库,也激发了对应学习的兴趣。
    为什么要学这些呢?我是觉得 c语言作为一门古老的语言,却在这么多年的发展仍然屹立不倒肯定是有其存在价值的。他的操作效率这个肯定是顶呱呱的,目前的大部分游戏框架以及ios的obeject-c都有其影子,所以学一学哪怕只是了解,对我以后如果要做对应的开发肯定是有帮助的。

学习目标

能看懂jni对应的c和c++代码,主要涵盖了以下方面:

  1. jni原理或者说明白jni中的native方法是怎么调用对应so库中的方法的,参数是如何传递的?
  2. c语言基础知识
  3. c++基础知识
  4. makefile相关知识
  5. CmakeList相关知识

学习过程

C语言

我是看的一个C语言入门经典Pdf,和大部分语言一样,分为一下几块

  • 基本数据类型
  • 循环+判断
  • 数组
  • 指针
  • 结构化数据(即类似Java中的类)
  • 函数
  • 流+多线程

我第一个算入门的语言是java,所以一开始看这些的时候总会跟java进行对比

基本数据类型都差不多 我觉得c比java就是多了符号这个概念比如相同的整型int
但c却仔细划分了有符号和无符号取值范围不一样,还有类型所占的字节数量页不一定相同,我并没有细看,感觉到时候要用到了 查一下就是。

循环和判断 数组都感觉类似。

结构化数据其实就是java中的类。通过组合已有的数据类型变成新的数据类型。但是这个和java以及后来的c++中的类区别就是没有了修饰符的概念,里面的所有成员都等于java中的public修饰可以随意改值。

c语言的指针是其核心,这是在java中没有的。刚开始学的时候我就有个问题,java中怎么从来没用到这个概念呢,为什么c中一定要用指针。
答:其实是有的,引用可以看成是一种指针。在函数中如果直接传入两个值作为参数,这个值是原有值的副本,对其做修改(包括struct)并不会影响原来的值。所以如果要改变原来的值就必须使用指针。
经典例子:对调ab两个int的值 直接swap(a,b)是不行的要swap (a,b)
指针操作内存还有其他的便利,还有操作函数。

流和多线程就扫了一下主要是锁的概念一些api使用吧,具体等用到再来补充。

奥对了 忘了个重要的,java中有导包的概念,可以方便的知道某个类有哪些方法可以调用,那c怎么做的 ,c如何让主文件即.c和.cpp中的方法暴露出去给别人用的呢,答案是.h ,通过在.h中定义对应的方法和类的申明,然后其他需要使用这些方法的文件导入.h就可以使用里面的方法了。

C++

c++本来是在微信读书上看的,实在是看书有点枯燥了,就找了个视频过来看看。看的是腾讯课堂上的职坐标的c++从入门到精通。目前看到了重载操作符。下面来回顾下学习内容。

  • 命名空间
如果两个.h中有两个同名同参数的方法,这时候该用哪个呢,命名空间就是为了解决这样的问题
eg. using namespace::std;
  • 引用
新增引用 用&修饰的变量即为引用,这在c中是取地址操作符常用于赋值指针,所以说其实引用就类似指针。
引用操作内部变量用. 而指针用->
  • 内联函数
其实就是c语言的宏 只不过解决了宏中的二义性和不能访问类中的私有成员
  • 默认参数的函数 函数重载 函数模板
默认参数就是在定义函数的时候设置参数默认值会进行自动匹配必须从右往左来着?不记得了那个规则
重载跟java类似
模板就是java中的泛型
  • 类 构造函数 析构函数
跟java类似比java多了析构函数需要手动释放占用资源
  • 拷贝构造函数和运算符重载operator=
这两个要一起用,什么时候会用到拷贝构造函数
1. 函数传入参数为一个对象的时候即值传递
2. 函数返回值为一个对象
 其实不难理解因为函数的执行过程是一个复制的过程,则自然要拷贝,为什么要
 用,因为不用就会使上面这两种情况造成回收后有个指针指向不存在的区域。
 还有第三种情况
3. 一个对象用于给另一个对象初始化
  • 待续

cmakelist

  • 待续

makefile

  • 待续

jni

  • 待续
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容