C/C++
文章平均质量分 60
Hosea14
这个作者很懒,什么都没留下…
展开
-
Atomthreads移植
初步编译错误:Error[Lc036]: no block or place matches the pattern "ro code section .text in atomport-asm-iar.o"stm8s移植html在线API文档csdn博客链接主要参考书籍:《嵌入式实时操作系统ucos-ii原理及应用》(第二版)主要编写内容:数据结构:程序控制块tcb解析:图文36、任务解析:单一...原创 2018-02-09 08:16:39 · 2996 阅读 · 0 评论 -
auto_ptr
本文,记录auto_ptr设计来源: 某函数退出时,本地变量都将被从堆内存中删除。因此,指针ps占据的内存将被释放,如果ps指向的内存也被释放,那将实现自动回收垃圾的机制。这意味着希望程序在ps过期时采用另一项额外的措施。简单来说,就是:类似new,却不需要担心delete问题。 对于基本类型,并没有提供这种额外的服务,但对于类,则可以通过析构函数机制来提供。原创 2018-01-28 08:52:19 · 207 阅读 · 0 评论 -
Linux errno值含义 与 思考(致命与可修正错误类型)
void print_errs( void ){ int idx = 0; int sys_nerr = 255; for( idx = 0; idx < sys_nerr; idx++ ) { printf( "Error #%3d: %s\n", idx, strerror( idx ) ); }}输出Error # 0: Success原创 2017-04-12 20:32:48 · 1158 阅读 · 0 评论 -
C 结构体 内存分配
1)相同的成员,不同的排序即为:结构中的元素布局和排序2)结构体实际占用字节(max、min)3)元素实际存放位置4)是否含有静态成员结构体内存计算方式:计算结构体大小时需要考虑其内存布局,结构体在内存中存放是按单元存放的,每个单元多大取决于结构体中最大基本类型的大小。结构体内存分配的原则:编译器按照成员列表顺序一个接一个地给每个成员分配内存。只有当存储成员原创 2016-03-13 14:39:50 · 1009 阅读 · 0 评论 -
数字滤波算法汇集
集中数种数字滤波算法原创 2016-05-16 08:47:22 · 501 阅读 · 0 评论 -
C 内存分配 博客汇集
开源中国 知名博主 C语言之内存分配博客园 阿枫博主 C 内存分配原创 2016-06-13 20:33:31 · 380 阅读 · 0 评论 -
stm8s_atomthread
STM8S实时操作系统使用教程(内部版)介绍1.嵌入式操作系统基本知识嵌入性、专用性与计算机系统是嵌入式系统的基本元素;跟通用计算机系统(如windows、linux等)相比,嵌入式系统具备专用性强、可剪裁性好、实时性好和功耗低的特点。实时操作系统满足条件: 必须是多任务(任务调度或调度器,最核心功能)任务的切换时间与系统当前任务数无关(调度器对任务切换时间)中断延时的时间可预知并尽可能短原创 2016-07-15 15:45:37 · 9033 阅读 · 69 评论 -
池化技术:线程池
线程池——任务:等待任务:全局的任务队列queue无任务且无销毁,任务添加函数 等待add的signal加载任务:add将新建任务指针task赋予queue执行任务:线程池内任一rtn获取当前队列的头(第一个任务task)执行,并将此任务从队列中剔除锁时间:在开始处理任务函数时解锁退出线程池内某一rtn:根据实际的编程手法(标志位等),判断是否p_exit原创 2016-10-22 21:55:32 · 470 阅读 · 0 评论 -
二维字符串指针
解决问题:使用指针,灵活控制指针关系。参考博文: 1. 二维字符数组与char** 关系 2. C语言中二维字符数组的定义和初始化思考下面代码出现的问题:void list_dir(char **dirp_array){ char *dir_name = "./"; DIR *dp; struct dirent *dirp; if ((dp = opendir(原创 2016-10-12 18:35:50 · 5780 阅读 · 0 评论 -
[编译]Makefile兼APUE解析(UNP12)
本文内容:最简单的Makefile知识点归纳,通过对apue-Makefile的内容,解剖出Makefile机制,并在此过程中,实践自己的algs4-hhc算法库工程(当然,是以学习Makefile为开始)这编写过程中,为了方便本人复习,会适当提供参考资料,部分内容超出Makefile知识范围,自行跳过。阅读人群:读者没有任何编译原理知识,可以先去补充(推荐阅读《嵌入式原创 2017-03-11 16:50:37 · 855 阅读 · 0 评论 -
C/C++混合编译和相互调用
本文,记录Linux开发环境下,C和C++实现混合编译,涉及具体做法、原理。参考文章:Mixing C and C++ Code in the Same ProgramMixing C and C++ Code in the Same Program ,链接How to mix C and C++,链接主要区别(针对mix):C编译识别函数:函数名;C++编原创 2018-01-28 08:52:46 · 739 阅读 · 0 评论 -
C/C++内存分配
解析主题运行时的内存布局分配与释放内存对齐内存溢出及解决运行时的内存布局 [Linux]C程序的运行内存布局分配/释放参考链接C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区,链接验证:C/C++内存分配方式——参考代码//main.cpp int a = 0; 全局初始化区原创 2018-01-28 08:53:07 · 264 阅读 · 0 评论 -
C++ STL(自定义泛型算法)
本文,记录C++ STL 实现自定义泛型算法。支撑C++成熟的STL是:容器(vector、list、queue、stack、map、set等)泛型算法(sort、find、merge、replace等)实现上述的关键是:function template技术,达到“与操作对象的类型相互独立”的目的。一对iterator(first和last),标示我们需要原创 2018-01-28 08:53:30 · 620 阅读 · 0 评论 -
编译链接
本文,解析Linux C/C++ 可执行程序的编译链接。编译全过程:hello.c —1— hello.i —2— hello.s —3— hello.o —4— a.out/hello细化步骤解剖:(1)预处理:gcc -E hello.c -o hello.i-E只对文件进行预处理,不编译汇编、链接编译器对各种预处理命令进行处理:头文件包含、宏定义扩展、条件编译选择等hello.c(C源文件)...原创 2018-02-09 08:16:20 · 421 阅读 · 0 评论 -
UNP1/2安装问题
本文,《UNIX网络编程·套接字编程》卷1源码编译及运行源码编译及运行运行书本第一例子:测试:./daytimetcpcli 127.0.0.1connect error: Connection refused安装并修改xinetd,启动服务,验证h265@H265:unpv13e$ netstat | grep daytcp 0 0 localhost:daytime ...原创 2018-02-09 08:16:07 · 479 阅读 · 0 评论 -
Makefile
作为今天的学习记录:makefile是具备自己的环境变量,当然还有很多类型的变量,比方说,自定义和预定义变量。这里不得不说的是环境变量,在编写makefile的时候,我们总是想着:就一个makefile,然后可以用尽所有工程(这跟我们写移植性代码非常强的问题一样)。那么就需要清晰地考虑makefile的环境变量了。make进行递归调用(此时,有各种的subdir子目录),为了让subdir可以正确...原创 2018-02-09 08:15:52 · 336 阅读 · 1 评论 -
GCC Compile knowledge
What's the difference between GNU99 and C99 (Clang)? 链接需要知道的是:linux-gcc默认gnu99编译链接库:-lz -lrt -lm -lc都是什么库libz 压缩库(Z)librt 实时库(real time):shm_open系列libm 数学库(math)libc 标准C库(C lib)lbsd ...原创 2018-02-09 08:15:38 · 378 阅读 · 0 评论 -
C/C++混合编译和相互调用
本文,记录Linux开发环境下,C和C++实现混合编译,涉及具体做法、原理。参考文章:Mixing C and C++ Code in the Same ProgramMixing C and C++ Code in the Same Program ,链接How to mix C and C++,链接主要区别(针对mix):C编译识别函数:函数名;C++编译识别函数:函数名+参数;所以,需要解决...原创 2018-02-09 08:15:23 · 293 阅读 · 0 评论 -
APUE和UNP1/2(包裹函数)
本文,记录与分析apue与unp1/2的库、demo的解析与使用。分析步骤:解析包裹函数,并对比非包裹函数的使用情况和案例分析,以此来理解”包裹“一词。讲述错误处理函数中使用到的Linux syslog,并根据此讲述守护进程的基本概念。包裹函数(错误处理函数解析) 在学习APUE、UNP1/2的这三套书籍时候,发现,其实可以使用强大的包裹函数,直接封装了错误信息提示,为调试代码,维护代码,...原创 2018-02-09 08:15:08 · 477 阅读 · 0 评论 -
APUE和UNP12(Makefile)
本文内容:- 最简单的Makefile知识点归纳,通过对apue-Makefile的内容,解剖出Makefile机制,并在此过程中,实践自己的algs4-hhc算法库工程(当然,是以学习Makefile为开始)- 这编写过程中,为了方便本人复习,会适当提供参考资料,部分内容超出Makefile知识范围,自行跳过。阅读人群:- 读者没有任何编译原理知识,可以先去补充(推荐阅读《嵌入式linux开发教...原创 2018-02-09 08:14:53 · 453 阅读 · 0 评论 -
const
本文,记录C++关键字之一:const的具体用法。总结一句:const起到文档说明和安全实现的作用,请使用它在你想使用的地方。has an effect of Documentation and Safety.Use const whenever you need .一共有多个用法:Const PointersConst FunctionsConst Ove原创 2018-01-28 08:54:14 · 170 阅读 · 0 评论 -
class/struct
本文,分析与总结C++的类和结构。主要内容C++class和C++structC++struct和CstructC++class和CstructC++class和C++struct?两者都可以有构造函数,提供初始化方法struc没有析构函数,class有struct构造与析构完全依赖new/detele原创 2018-01-28 08:53:56 · 207 阅读 · 0 评论 -
嵌入式软件工程师 面试题 (持续更新中)
立个Flags:这篇文章将会是私人文档里面,最受欢迎的文章,毕竟,它将会是最好、最全面、最友好、层次感强的面试题集合。2017/3/16 13:37:23原创 2017-03-16 13:39:02 · 1049 阅读 · 0 评论 -
[技巧]C·技法
本文,以时间为轴,记录在“编码器”项目期间,重新对C语言的审视,每天只限于一个问题的收集,允许没有。要做到宁缺毋滥,而且每一个写下的问题/技法都将在当前内解决/理解。2017/2/17 12:57windows cmd控制台同样可以使用命令,并如同linux一样有意思。请看2017/2/17 12:57链接 :讲述C语言使用goto语句处理异常/错误链接 :简要原创 2017-03-29 07:44:42 · 452 阅读 · 0 评论 -
[技巧]C·gcc编译错误
../include/std_in.h:15:8: warning: extra tokens at end of #endif directive [-Wendif-labels] #endif // __STD_IN_H_ 链接,原则上#endif不需要参数,后面仅作为阅读;设置-ansi,会发出警告../include/t_debug.h:7:1: error:原创 2017-03-29 07:46:02 · 6775 阅读 · 0 评论 -
[笔记]C++的空类
面试题:新建一个C++的空类,会产生那些函数。class Empty{};编译器处理后:生成如下:class Empty{ public: Empty();//构造函数 Empty(const Empty&);//拷贝构造函数 ~Empty();//析构函数 Empty& opteror=原创 2017-05-04 13:20:03 · 333 阅读 · 0 评论 -
[C++]copy constructor and copy assignment operator
本文,记录:copy constructor复制构造函数 and copy assignment operator重载赋值操作符的思考参考 第12章,仅动态内存和类小节C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝,链接涉及问题:对类使用new/delete及其待处理的动态内存,这将影响构造/析构函数的设计copy constructor and c原创 2017-06-05 18:23:41 · 2514 阅读 · 0 评论 -
[C++]new/delete
本文,记录new/delete的基本使用方法。分别下面两个,理解概念:数据对象int *pn = new int;int hi;int *pt = &hi;为一个数据对象(可以是结构,也可以是基本类型)获得并分配指定内存的通用格式:typeName *pointer_name = new typeName;然后,理解:C++new与Cma原创 2017-06-05 07:56:13 · 489 阅读 · 0 评论 -
[C++]friend
本文,暂且记录C++ friend,以后考虑是否需要将public和protected友元:能够直接访问私有、公有、保护的成员变量友元的3种友元函数友元类友元成员函数在为类重载二元操作符(带两个参数的操作符)常需要友元函数,比方说重载*运算符,a = b * 2.75;转换为a = b.operator*(2.75);但,a = 2.75原创 2017-06-05 07:55:29 · 301 阅读 · 0 评论 -
[技巧]using STL
本文,记录使用STL的方法。主要是针对自定义类的实现。利用std::sort,通过观察STL的sort接口可知:有两种方式。std::sortdefault (1)template void sort (RandomAccessIterator first, RandomAccessIterator last);how to sort STL vector,链接原创 2017-05-28 21:53:42 · 493 阅读 · 0 评论 -
[开发]Github--Tool
本文,记录在学习github的一些技巧和工具使用方式。Git 比较不同版本文件差异的常用命令格式:git diff 查看尚未暂存的文件更新了哪些部分git diff filename 查看尚未暂存的某个文件更新了哪些git diff –cached 查看已经暂存起来的文件和上次提交的版本之间的差异git diff –cached filename 查看已经暂存起来的某个文原创 2017-05-28 21:52:29 · 422 阅读 · 0 评论 -
[C++]C++ Learn-Book
阶段 1《Essential C++》这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。《C++ Primer》本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++初学者的最佳指南;本书原创 2017-05-28 21:51:12 · 436 阅读 · 0 评论 -
[C++]from C to C++(grammar)
本文,直接记录在从C转到C++学习的过程中,了解与区分的语法差异。用于高速补全C++语法点知识,无需参考百科全书。备注:为了达成“速成”的效果,采用菜鸟教程,链接结合《Essential C++》来学习。当然,所谓的速成,仅仅是说从C到C++的语法补充,而不是速成C++,绝对不是这个意思。C++ 基本语法C++ 程序可以定义为对象的集合,这些对象通过调用原创 2017-05-28 21:50:36 · 1099 阅读 · 0 评论 -
[笔记]C++ Empty Class(analysis construcor and desturctor)
面试题:新建一个C++的空类,会产生那些函数。class Empty{};编译器处理后:生成如下:class Empty{ public: Empty();//构造函数 Empty(const Empty&);//拷贝构造函数 ~Empty();//析构函数 Empty& opteror=原创 2017-05-28 21:43:13 · 629 阅读 · 0 评论 -
[C++]operator overlord
本文,记录C++所有运算符重载的实现。学习参考:在线文档:http://en.cppreference.com/w/cpp/language/operators《C++ primer plus》第11章 使用类操作符重载友元对操作符重载的影响注意:普通类与模板类是有区别的。归纳操作符表示法中,操作符左侧的对象是调用对象,操作符右边的对原创 2017-06-05 07:56:46 · 1352 阅读 · 0 评论 -
[开发]Linux平台下的C++开发(搭建环境)
本文,记录在Linux平台下的C++应用开发,所需经历与配置的内容。编译器参考链接:What is the difference between g++ and gcc? ,链接gcc helloworld.cpp -lstdc++ -o helloworldg++ helloworld.cpp -o helloworldLinux下的C++的标准库li原创 2017-06-05 18:38:19 · 1449 阅读 · 0 评论 -
[C++]模板类的声明与实现分离问题
本文,记录C++模板类的实现。目的:实现一个bag类做法:模板类bag的声明与实现分离,也就是.cpp和.h文件分离此时,编译失败。将.cpp和.h取消(亦即取消声明与实现的分离)此时,编译成功,运行正常。马上查找资料,收集整理如下:C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译? ,链接Splitting temp原创 2017-06-01 16:52:55 · 5158 阅读 · 2 评论 -
sizeof与strlen的异同
作为一个C程序员,经常使用的两个函数,尝试解析一下,笔记而已,高手绕道。第一个差别:strlen是一个函数,计算不包含null字节的字符串长度。sizeof是一个关键字,计算包括null字节的缓冲区长度。还有一个差别:使用strlen需要进行一次函数调用,而sizeof因为缓冲区已用已知字符串进行初始化,其长度固定,是在编译时计算缓冲区长度。上面这个差别,实际上不需原创 2017-03-29 16:36:26 · 448 阅读 · 2 评论 -
阅读代码的一些心得体会
据说,作为一个优秀的程序员,他是在阅读/调试/删除--代码。目前,就阅读代码而言,我写一下我目前的一些心得体会吧。(高手绕道)2017/3/29 16:56 此时,我正弄音视频流媒体直播传输的一个东东,跟队友合作,写一个循环缓冲区,为的是我把视频码流写入缓冲区里面,他就从里面读取出来。反正,我写了一个测试用例:读写函数都是一个,直接封装,没有子函数,包括出错/异常处理都在一个函原创 2017-03-29 17:09:01 · 1996 阅读 · 0 评论 -
[技巧]Linux process进程
本文,在实现视频编码流媒体--控制进程实现,为了理解控制进程的实现(深入环境),记录最关键的几个知识点。基本涉及:unix系的进程环境(C程序的启动与终止、C程序的内存布局、环境表与环境变量)unix系的进程控制原语(fork族、exec族、exit族、wait族)基于进程控制原语实现的进程控制API(popen、system)提供process进程的资料链接及其简要分析原创 2017-03-30 09:57:34 · 1874 阅读 · 0 评论