![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
zmnbehappy
这个作者很懒,什么都没留下…
展开
-
__attribute__((weak)) 简介及作用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言弱符号是什么?示例参考前言最新在梳理流程时看到有一个函数使用了weak修饰属性,以前只是听同事提起过并不得知,所以写一篇文章以作记录。弱符号是什么?若两个或两个以上全局符号(函数或变量名)名字一样,而其中之一声明为weak属性,则这些全局符号不会引发重定义错误。链接器会忽略弱符号,去使用普通的全局符号来解析所有对这些符号的引用,但当普通的全局符号不可用时,链接器会使用弱符号。当有函数或变量名可能被用户覆盖时,该函数.转载 2022-03-24 08:54:16 · 495 阅读 · 0 评论 -
lua加载luasocket
lua加载luasocket0x00缘起最近在使用lua处理相关问题,在测试代码时遇到了luasocket的库的是用。源码编译,没有什么大问题,问题出现在库的使用上,require加载失败0x01 现象socket = require("socket")stdin:1: module 'socket' not found: no field package.preload['socket'] no file './socket.lua' no fi原创 2020-07-09 15:06:38 · 2380 阅读 · 0 评论 -
c语言类型探索:unsigned long
c语言类型探索:unsigned long0x00 缘起目前在做mib相关的工作,oid节点的类型是counter64,支持私有mib的类型使用的是unsigned long,在考虑是不是够用,组内给出的结论是我们的平台上unsigned long和unsigned long long是相同位宽,即都为8字节。感觉自己基本功不扎实,故才有了这次探索0x01 测试事实胜于雄辩,我还是在设备上做下测试吧。结果显示的却是如此,unsigned long和unsigned long long是相同位宽,即都原创 2020-07-01 10:20:25 · 3652 阅读 · 0 评论 -
关于c++工厂模板宏的分析
0x00 缘起今天有个同事M君在技术群里发了一个如下c++的问题:在如下代码中#define REGISTER_FACTORY(FACTORY, BASE) \ void forceStaticLink##FACTORY() {} ...原创 2020-04-15 09:59:55 · 401 阅读 · 0 评论 -
c语言-柔性数组初始化
起因在做项目时,遇到相似结构,差异在一个成员,这个成员想表达可变数组,数据结构如下struct A { int len; float e[10];};struct B { int len; float e[20];};目的:合并两个结构,用同一个结构表达初始化变量,或数组测试首先合并AB两个结构不难,可以使用柔性数组struct AB { int len; ...原创 2020-03-13 09:31:50 · 641 阅读 · 2 评论 -
c语言-整形数组标量
起因在做项目时,遇到了一连串整形数字,我想将作为标量,并赋于指针。实践测试如下代码struct A { int len; int *p;};struct A a={3,{1,2,3}};编译会出现失败gcc warning: braces around scalar initializer深入搜索之后,发现这个应该是个人理解的问题。可以如下struct A a={3...原创 2020-03-11 08:13:22 · 306 阅读 · 0 评论 -
由asn1编码引发对sm2签名长度思考
起因工作相关的朋友咨询我sm2签名长度的问题,故有了这篇文章。过程问:按照国密规范,签名长度64,为什么长度可变?答:要按这个假设,应该的范围是68,69,70,71,72。最好是按asn1解析问:我刚才看了下GM/T 0003.2中的规定,看上去签名结果就应该是(r,s)的字符串形式64个字节的,我后来看了下这个文档的附录A中的两个用例,签名的结果都是r:32字节 s:32...原创 2019-03-21 14:56:49 · 10124 阅读 · 2 评论 -
perl初探:外部程序的使用
起因上周再看工程时,发下了一个预处理问题:perl调用XalanTransform生成c的源文件,处于好奇,想知道XalanTransform是如何处理xml的。按照编译的处理方式,已大概了解处理的基本步骤,所以在想找到这个函数的如何实现的兴趣转为查找其出处。问题描述:如何找到这个方法的出处?初探使用第一个方法是在本工程查找,grep或egrep后,结果并不理想。然后推断可能是文件名,f...原创 2019-03-11 10:49:29 · 273 阅读 · 0 评论 -
lua中神奇的table
lua中神奇的table最近在尝试配置 awesome WM,因此粗略地学习了一下 lua 。 在学习过程中,我完全被 table 在 lua 中的应用所镇住了。table 在 lua 中真的是无处不在:首先,它可以作为字典和数组来用; 此外,它还可以被用于设置闭包环境、module; 甚至可以用来模拟对象和类字典table 最基础的作用就是当成字典来用。 它的 key 值可以...转载 2018-07-11 10:59:35 · 528 阅读 · 0 评论 -
解决 vs2010问题 error MSB8008: 指定的平台工具集(v110)未安装或无效
MSB8008转载 2017-12-25 14:21:36 · 985 阅读 · 0 评论 -
linux下读取conf配置文件c语言函数库ccl
Introductionccl is the customizable configuration library, a collection of functions for application programmers wishing to interface with user-editable configuration files containing key/value pairs.c转载 2017-12-22 18:34:42 · 2394 阅读 · 0 评论 -
Scheme 初步
写在前面:参考书籍http://deathking.github.io/yast-cn/contents/preface.htmlsicp课后答案:http://sicp.readthedocs.io/en/latest/转载 2017-07-26 10:19:24 · 688 阅读 · 1 评论 -
Python调用windows下DLL详解 - ctypes库的使用
在python中某些时候需要C做效率上的补充,在实际应用中,需要做部分数据的交互。使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件),下面将详细的讲解这个模块(以windows平台为例子),当然我假设你们已经对windows下怎么写一个DLL是没有问题的。引入ctypes库from ctypes import * 假设你已经有了一个的DL转载 2017-12-02 17:35:56 · 40838 阅读 · 5 评论 -
base64编码算法与c语言实现
base64是一种以64个可打印字符对二进制数据进行编码的编码算法。base64在对数据进行编码时以三个8位字符型数据为一组,取这三个字符型数据的ASCII码,然后以6位为一组组成4个新的数据,这4个新的数据有6位,所以它的最大值为2^6=64。我们以4个6位数据的十进制数从base64表中得到最终编码后的字符。Base64 编码表 Value Char Value Char转载 2017-11-23 17:38:38 · 312 阅读 · 0 评论 -
DER编码规则详解
概念:DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案。DER与BER的区别:DER在BER的基础上增加了如下限制: 长度小于等于127,必须使用短型长度表示法。 长度大于127,必须使用长型长度表示法,并且要尽可能的短。 对于简单的string类型以及在其基础上隐性标签生成的类型使用简单定长表示法。 对于结构化类型以及在其基础上隐性标签生成的类型以及所有的显示类型使用结转载 2017-11-23 17:48:12 · 6562 阅读 · 0 评论 -
ASN.1笔记——标准编码规则BER
BER编码一.基本规则BER(BasicEncoding Rules)是ASN.1中最早定义的编码规则,其他编码规则是在BER的基础上添加新的规则构成。 1.BER传输语法的格式一直是TLV三元组< Type,Length, Value >. T是Tag,L是整个类型的长度,V是类型的Value,它还可以是TLV或TLV组合 2.BER传输语法是基于八位组大端编码的,高八位在左。 3转载 2017-11-23 18:18:52 · 881 阅读 · 0 评论 -
软件工程师需要数学的真正理由
软件工程师需要数学的真正理由 作者:Keith Devlin 翻译:g9yuayon博客 本文译自 The Communication of ACM 第44卷,2001年第10期软件工程师们常常宣称他们从来不用在大学里学到的任何数学知识. 说到这个,他们还会说连大学里学到的计算机专业知识都用不了多少。我搞了三十年数学,就让别人来谈计算机专业方面的情况,不过就数学的使用情况而言,我不得不坦白承认转载 2017-11-23 18:24:15 · 636 阅读 · 0 评论 -
python 调用 C 动态库
python 调用 C 动态库转载 2017-12-05 09:43:09 · 371 阅读 · 0 评论 -
发布跨平台INI文件读写API(C版本) V0.2.0
工程:跨平台INI文件读写API(C版本) 版本: 0.2.0 授权方式:GNU GPL 著作权所有(c) 2007 Midapex 本程序为自由软件;您可依据自由软件基金会所发表的GNU通用公共授权条款规定,就本程序再为发布与/或修改;无论您依据的是本授权的第二版或(您自行选择的)任一日后发行的版本。 本程序是基于使用目的而加以发布,然而不负任何担保责任;亦无对适售性或特定转载 2017-12-22 18:32:11 · 213 阅读 · 0 评论 -
使用Markdown编辑器写博客
makedown示例源码转载 2017-07-31 10:57:46 · 273 阅读 · 0 评论