摘要:前言 最近转型做Golang开发了,但有需求做视频传输,想用ffmpeg做测试,只是加点日志,方便测试,就想直接用VS Code做下开发好了,安装C/C++的插件,用MSYS2编译。 问题 C/C++插件直接用微软的官方插件,修改配置也成功了,但是想像VS那样配置多个属性集,也能配成功,但就是不知道
阅读全文
摘要:什么是辗转相减法 我们小学(应该是小学吧)学过求最大公约数的方法是辗转相除法,其实还有另一种方法,只是12年义务教育都没有提到过,那就是辗转相减法。它的基本原理是:大数减小数,直到两数相等时,即为最大公约数。 举个栗子 a b |a - b| 88 156 88 68 156 - 88 20 68
阅读全文
摘要:什么是埃及乘法 埃及乘法的思路是:反复地将n减半,并将a加倍,同时求出a的各种倍数,这些倍数与a的比值都是2的整数次幂。n的值为奇数部分的a之和即为所求值 举个栗子:41 x 59 1 41 59 √ 2 20 118 4 10 236 8 5 472 √ 16 2 944 32 1 1888 √
阅读全文
摘要:老大让我们去学学webpack, 我在一开始就遇到了坎, 调侃自己"webpack从入门到放弃", 在windows下, 报错是"openssl config failed: error:02001002:system library:fopen:No such file or directory"
阅读全文
摘要:一般库的标准名称是libxxx.so或者libxxx.a, 如果没有, 也可以搞个linkname出来, 那就可以直接用 "-lxxx" 来链接了, 但要是你想直接用realname, 就不能直接这么用了, 但也很简单, 用 "-l:" 后面接库名, 至于什么是realname, linkname,
阅读全文
摘要:前些天在看getopt源码, 一种前所未见的函数定义方法 还以为是什么新颖的写法, 原来是C最原始的写法K&R C风格, 而我们现在写的都是ANSI C风格, 原谅我读书少, 没有认真读过那些C 的经典书籍 ANSI C 对 K&R C 的修订 (本段根据《C Programming Languag
阅读全文
摘要:之前使用过libcurl, 编译也是最简单的版本, 不需要openssl, 即不需要支持https, 所以编译和使用都很正常. 但要使用openssl就很麻烦了, 我花了差不多两天去编译和调用, 记录一下, 以便下次使用 我使用的是最新的openssl openssl-1.1.0f, 编译很简单,
阅读全文
摘要:最近看到一种比较新颖的写法 —— 结构体在头文件中声明, 源文件中定义 A.h A.cpp 原以为这样应该会报错, 因为头文件中的 "struct Context" 应该是找不到的, 但amazing, 竟然能顺利编译过, 由此让我加深了对声明和定义的理解. 就像函数在头文件中声明, 而在源文件中定
阅读全文
摘要:当你定义结构体和共用体类型时,关键字attribute允许你为这些类型指定特殊的属性。这个关键字后面跟随着包含双parentheses的指定类型。四中属性常被定义为:对齐(aligned),封装(packed)型,透明共用体型(transparent-union)和未使用。另外的属性则被定义为函数(
阅读全文
摘要:关键字__attribute__允许你说明变量或结构体域的特殊属性。这个关键字是跟有括在一对圆括号中的属性说明。现在给变量定义了八个属性:aligned, mode, nocommon, packed, section, transparent_union, unused,和weak。在特定的目标机
阅读全文
摘要:关键字__alignof__允许你询问一个对象如何对齐,或者一个类型的需要的最小对齐。它的语法很像sizeof。 例如,不过目标机器需要一个双精度值来使一个8位的边界对齐,这样__alignof__(double)就是8.在许多RISC机器上就是这样的。在很多传统的机器设计,__alignof__(
阅读全文
摘要:这一段说明了在C语言中,使用到__attribute__的语法和属性说明符绑定的概念。一些细节也许对C++和Objective C有所不同。由于对属性不合适的语法,这里描述的一些格式可能不能在所有情况下成功解析。 上一篇,声明函数的属性,了解施加于函数的属性语义的细节。说明变量属性一篇,了解施加于变
阅读全文
摘要:在GNU C中,你可以声明关于在你程序中调用的函数的某些东西,来帮助编译器优化函数调用和更仔细地检查你的代码。 关键字__attribute__允许你在声明时指定特殊的属性。跟在这个关键字后面的是双重圆括号里面的属性说明。有十四个属性noreturn, pure, const, format, fo
阅读全文
摘要:向共同体类型转换和其它转换类似,除了指定的类型是一个共同体类型。你可以用union tag或一个typedef名字来指定类型。向共同体转换实际上却是一个构造,而不是一个转换,因此不像普通转换那样产生一个左值。(参考5.21节复合文字) 可以向共同体类型转换的类型是共同体中成员的类型。所以,给定下面的
阅读全文
摘要:你可以在单个case标签中指定一系列连续的值,就像这样: 这和单独的case标签的合适数字有同样的效果,每个对应包含在从low到high中的一个整数值。 这个特性对一系列的ASCII字符代码特别有用: 当心:在...周围写上空格,否则当你把它和整数值一起使用时,它就会被解析出错。例如,这样写: 而不
阅读全文
摘要:标准C89需要初始化语句的元素以固定的顺序出现,和被初始化的数组或结构体中的元素顺序一样。 在ISO C99中,你可以按任何顺序给出这些元素,指明它们对应的数组的下标或结构体的成员名,并且GNU C也把这作为C89模式下的一个扩展。这个扩展没有在GNU C++中实现。 为了指定一个数组下标,在元素值
阅读全文
摘要:我的工作是C++开发,主要是做底层的,由于要做跨平台的原因,常会做成JNI给Java调用,下面是工作时总结的经验希望有用
阅读全文
摘要:这篇总结是我正式参加工作后,和同事交流学习得出来的,希望对其他人有帮助,也是自己的脚印 持续更新......
阅读全文
摘要:最近在做一个项目,要从贴图中获取图像数据,查了很多资料,也琢磨很久,获取到的数据都是0。终于在一次偶然的机会,发现了端倪,成功了。 不得不说这“一分灵感”真的很重要 以下是在获取贴图数据时的注意事项: 函数代码: 结论由试验所得,如有错误,望指出
阅读全文
摘要:在编译FFmpeg的时候,用./configure 进行配置,经常会出现找不到库文件的情况,原因大概就两个: 1、没有安装库文件或者安装的库文件版本不对 2、FFmpeg没有找到库文件 前者的问题好解决,只要安装相应的库就好了,但是安装好相应的库以后,一般还会掉入后者那个坑。 后者要解决也很简单,只
阅读全文