![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 89
Gunder
不逼一下自己,不知道自己有多牛逼!
展开
-
addr2line快速定位进程异常位置
通过addr2line工具快速定位到C/C++程序出错的位置,方便查找问题根因原创 2022-11-10 20:50:52 · 5811 阅读 · 1 评论 -
UART通信之面向对象编程二(OOP)——数据封装
在《UART通信之面向对象编程(OOP)》这篇文章的基础上进行UART数据封装及使用线程来收发串口数据。下面一个一个介绍。1、使用队列的方式来存储串口数据,关于队列可以参考《数据结构——队列C/C++》。#ifndef __QUEUE_H__#define __QUEUE_H__#include <inttypes.h>#include <stdbool.h>...原创 2020-04-17 17:16:58 · 1222 阅读 · 0 评论 -
线程创建汇总——JAVA/C/C++
很多时候在处理一些耗时操作时,需要通过开辟线程来处理,这样不会阻塞主线程的执行。1、JAVA的线程创建。2、C中的创建线程,编译需要加线程参数,如:gcc cthread.c -o cthread -lpthread#include <stdio.h>#include <pthread.h>#include <unistd.h>void...原创 2020-04-16 19:38:03 · 166 阅读 · 0 评论 -
数据结构——队列C/C++
队列是一种先进先出(FIFO)的数据结构,本文将使用双向循环链表来实现队列。对双向循环链表不太了解的,可以参考《c中的双向链表实现》跟《JAVA数据结构及算法--LinkedList分析》。1、定义队列的数据结构及队列操作相关的函数#ifndef __QUEUE_H__#define __QUEUE_H__#include <inttypes.h>#include &l...原创 2020-04-14 11:20:42 · 217 阅读 · 0 评论 -
UART通信之面向对象编程(OOP)
上一篇介绍了UART的简单通信实现,不太了解通信过程的可以先参考上一篇文章《最简单的一个UART通信实例》。上一篇的《最简单的一个UART通信实例》是面向过程编程,本编将介绍UART通信的面向对象编程。1、抽象接口定义#ifndef MYUART_HARDINTERFACE_H#define MYUART_HARDINTERFACE_H#include <fcntl.h>...原创 2020-04-09 14:27:56 · 655 阅读 · 0 评论 -
最简单的一个UART通信实例
1、What’s UART?UART全称为Universal Asynchronous Receiver/Transmitter,即通用异步收发器,是串行通信一种通信技术,常用于单片机和电脑之间以及单片机和单片机之间的板级通信。下面是串口通信硬件连接图:2、使用的的系统函数int tcgetattr(int fd, struct termios *termios_p); //...原创 2020-04-01 15:25:26 · 1879 阅读 · 0 评论 -
Recovery中常用到的系统函数汇总(一)
最近在研究Android 5.1的recovery升级,发现里面的很多系统函数都不是很熟悉,现在做一下笔记,方便自己及有需要的朋友。1、库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。下面的函数跟strcmp类似,返回值情况类似。C 库函数 int strncmp(const...原创 2020-03-16 16:16:51 · 368 阅读 · 0 评论 -
数据结构--单链表C/C++
最近在学习数据结构,其中有介绍单链表跟单循环链表的,现在复习一下。首先要定义一下数据结构(节点),如下:typedef int DataType; //方便后面修改数据类型,有点像C++/JAVA中的泛型typedef struct Node { DataType data; struct Node *next;}Node;单链表:接下来是定义一个获取链表某个位置节点...原创 2019-03-11 18:04:55 · 192 阅读 · 0 评论 -
Android JNI 访问Java中的成员变量及非native方法
JNI的头文件生成及编译请参考《Android中的JNI使用指南一》1、修改Java类中的成员变量。通过HelloJNI.java类中changeNum()本地方法来修改成员number的值。number初始化为0,通过本地方法changeNum()修改为100。HelloJNI.java类中定义如下:changeNum()在C++中的实现,如下://修改java类中的成员变量(...原创 2019-03-05 17:32:20 · 438 阅读 · 0 评论 -
Android中的JNI使用指南一
一、简介JNI全称是Java Native Interface(Java本地接口)单词首字母的缩写,本地接口就是指用C和C++开发的接口。由于JNI是JVM规范中的一部份,因此可以将我们写的JNI程序在任何实现了JNI规范的Java虚拟机中运行。同时,这个特性使我们可以复用以前用C/C++写的大量代码。 开发JNI程序会受到系统环境的限制,因为用C/C++语言写出来的代码或模块,编译过...原创 2019-02-25 13:47:05 · 287 阅读 · 0 评论 -
Android 中的Java跟C/C++的Binder通信
1、大家都知道Android中进程间的通信是通过binder来实现的,这里主要是讲代码中的简单实现。如果想了解binder的通信细节或实现原理,可以参考https://blog.csdn.net/jmq_0000/article/details/7349844。个人觉得这篇博客讲的还是很不错的。现在就开始demo的介绍,该demo主要是通过java传递文件路径给C++来实现删除该路径,目的是为了了...原创 2018-08-07 17:54:49 · 3589 阅读 · 0 评论 -
Android原生的JNI学习
1、JNI是Android中Java调用C/C++中的函数的一种实现。在源码中有着JNI的一些简单的实列,路径是/development/ndk/samples,如图:今天学习的是two-libs这个项目,该项目的JNI目录是这样的: first.c里面只有一个实现加法的函数,second.c调用了first.c里面的方法,并且会将返回值返回给Java调用层。first.c:...原创 2018-08-10 18:11:49 · 194 阅读 · 0 评论 -
c中的双向链表实现
1、之前在培训公司学习了用C语言实现双向链表的知识,现在有空重新写一遍。首先定义一下头文件list.h。 1 #ifndef __LIST_H__ 2 #define __LIST_H__ 3 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <string.h> 7 ...原创 2018-08-10 11:52:46 · 3222 阅读 · 0 评论 -
Android中C/C++的日志打印
1、对于很多Android开发人员来说,Android的标准日志打印已经使用的非常习惯,如果在调试C/C++时使用的是printf或者cout这种方式打印日志,那查找起来会非常不舒服,为了使自己舒服起来,还是有必要使用android标准的日志方式打印日志的。先看一下效果:2、新建一个deleteFile.cpp文件,导入android标准日志打印的头文件<android/log.h&...原创 2018-08-04 16:27:51 · 10437 阅读 · 0 评论