![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 83
_saga
知其可为而不为
展开
-
c语言无声明自动链接的问题
c语言允许在没有声明的情况下使用函数,比如在没有包含stdlib.h的情况使用atoi,atof之类的函数,但这往往导致问题。看如下的代码段:int main(){ char *fnum = "12.0115"; char *inum = "120115"; double fresult =0.0; int iresult =0; iresult = atoi(inum); fr原创 2012-01-15 10:08:35 · 896 阅读 · 0 评论 -
Intel Threading Building Blocks 编程指南:异常与终止
异常与取消Intel TBB支持异常与终止(cancellation),当算法中的代码抛出一场时,会按顺序发生:捕获异常。算法内进一步的异常被忽略。算法终止。挂起的迭代操作不被执行。如果内部存在嵌套的Intel TBB并行,那么它的取消与否取决于特定实现(下面会提到)算法的所有部分都停止后,会在调用算法的线程(thread)上抛出异常。步骤3中抛出的异常可能是初始的异常,也可能仅仅翻译 2015-05-18 16:21:52 · 890 阅读 · 0 评论 -
RCFProto及编译
公司在规划一款产品,涉及到异构语言的client-server通信。但xml-rpc的方案相对臃肿缓慢,最终的消息编码协议选择了Google的ProtoBuffer。接着选择一款RPC实现,重点考虑以下问题:产品开发语言支持:比如C++、Java、C#,甚至python跨平台支持:支持Window、Linux,最好也支持移动系统稳定:不考虑技术新奇的新生框架,要求有稳定的版本应用广泛:原创 2015-09-01 18:05:44 · 3404 阅读 · 2 评论 -
c++新特性:多线程
很高兴c++11的标准库可以#include <thread>了。boost早就提供了类似功能。这时候考虑下开发商、物业公司联合阻碍成立业主委员会的借口之一:会妨碍事情的正常进展,推断也许他们也是c++的长期使用者:)1、pthread_xx的封装 stl提供了(目前)五个头文件以支持多线程:atomic(提供原子操作功能)、thread(线程模型封装)、mu...原创 2015-03-05 15:45:24 · 7352 阅读 · 1 评论 -
POSIX 线程编程指南(二)
线程创建和参数传递翻译 2016-12-22 15:21:12 · 526 阅读 · 0 评论 -
POSIX 线程编程指南(四)
线程同步翻译 2016-12-22 16:51:46 · 545 阅读 · 0 评论 -
POSIX 线程编程指南(三)
线程的分离、合并以及栈设置翻译 2016-12-22 16:04:29 · 486 阅读 · 0 评论 -
POSIX 线程编程指南(完)
性能,调试,参考翻译 2016-12-27 17:00:57 · 1180 阅读 · 0 评论 -
小项目中通用的Makefile
在从事Linux开发这10年间,我很少重头写Makefile,如果是复杂的项目,我会使用IDE,不用考虑Makefile的问题。简单的项目,就拿着刚开始学习Linux编程时的模板修修补补,这些年就过来了,Makefile的语法也忘得一干二净(话说Makefile的语法规则真是乱) 在实现Makefile之前,得考虑自己的需求,通常来说,最关键的一点就是:自动查找工程目录下的相关源文件,...原创 2019-02-13 11:46:20 · 395 阅读 · 0 评论 -
ffmepg以及x264的编译
介绍Linux(ubuntu)与windows环境下的FFmpeg、X264库的编译。编辑器包括,Visual studi、GCC、MinGW原创 2015-10-30 14:16:36 · 6036 阅读 · 0 评论 -
使用NDK编译Google Protocol Buffer
NDK编译c++代码的流程请参考别处。只要配置好了NDK的环境,那个jni文件夹建立在Android studio或者eclipse等开发工具建立的工程中不是必要的。关键是两个文件的内容:Application.mk和Android.mkApplication.mkAPP_STL := gnustl_staticAPP_ABI := x86APP_PROJECT_PATH := ./原创 2015-08-31 18:26:08 · 2057 阅读 · 1 评论 -
Linux(gnu)环境动态链接库的搜索路径
man ld.so(8)说,如果库依赖不包括“/”,那么它将按照下面的规则按顺序搜索:(仅对ELF格式)如果可执行文件包含DT_RPATH标签,并且不包含DT_RUNPATH标签,将从DT_RPATH列出的路径搜索。(DT_RPATH已经被废弃,请用DT_RUNPATH)如果LD_LIBRARY_PATH在程序运行时被定义,那么将从它包含的路径开始。安全起见,对于set-user-ID原创 2013-11-05 10:40:47 · 2588 阅读 · 0 评论 -
在线c++编译器(gcc)
这几年c++标准委员会活跃起来,c++11、14标准相续推出。对于想尝鲜又怕麻烦(visual studio 更新慢,对标准的支持力度也不够。对于使用gcc的,替换系统的gcc版本或者安装个mingw也挺费事)的人来说,可以优先考虑在线的编译器。1、http://www.tutorialspoint.com/compile_cpp_online.php功能比较全面,原创 2015-03-04 10:58:56 · 15068 阅读 · 1 评论 -
boost:智能指针
简介: 智能指针是一种具备指针类似行为的对象,当不在需要它的时候自动删除其引用的c++对象。直接点说就是自动析构C++对象。boost提供了6种智能指针,如下所示:scoped_ptr单个对象的简单的唯一所有权. 不能拷贝.scoped_array数组对象的唯一所有权. 不能拷贝.shared_ptr多个指针间共享原创 2011-12-25 20:56:04 · 1236 阅读 · 0 评论 -
c++新特性:lambda
lambda是c++0x提供的重大新特性。通过lambda表达式能很方便的创建简单的函数对象(你也可以创建复杂的函数对象,没人能阻止你),这在很多需要提供回调函数的场合非常有用。vc10及以上(gcc4.5及以上)版本的编译器都实现了lambda表达式。貌似c++11、c++14、c++17对lambda的规范有细微调整,这从侧面也能说明C++这些年在实现“现代化”方面很努力。(虽然有点晚了),很...原创 2012-01-20 18:36:54 · 6739 阅读 · 2 评论 -
Intel Threading Building Blocks :基本算法参考及使用
Intel TBB提供的大多数并行算法支持泛型。但是这些受支持的类型必须实现必要的概念方法。并行算法可以嵌套,例如,一个parallel_for的内部可以调用另一个parallel_for。原创 2012-06-09 18:12:52 · 6509 阅读 · 3 评论 -
hello,intel TBB
Intel Threading BuildingBlocks(Intel TBB)是一个使用ISO C++代码实现的多平台、可扩展并行编程库。但目前为止这方面的中文资料却很少。初步了解TBB时,并非每个人都打算看官方提供的资料,即使是Intel Threading BuildingBlocks Tutorial。原创 2012-06-09 18:02:29 · 17192 阅读 · 0 评论 -
Intel Threading Building Blocks 编程指南:互斥
互斥 互斥控制某块代码能同时被多少线程执行。在Intel Threading Building Blocks(intelTBB)中,互斥通过互斥体(mutexes)和锁(locks)来实现。互斥体是一种对象,在此对象上,一个线程可以获得一把锁。在同一时间,只有一个线程能持有某个互斥体的锁,其他线程必须等待时机。 最简单的互斥体是spin_mutex。试图在spin_mutex翻译 2015-04-28 21:35:07 · 1282 阅读 · 0 评论 -
Visual Studio Code : C/C++开发者实用指南
如果要使用visual studio code 在windows下面体验mingw、WSL中的gcc,上手并不简单,这款工具如此简约导致了不“简单”原创 2019-03-15 10:55:17 · 5942 阅读 · 0 评论