logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

c/c++ 宏定义里的#和##

其中的VAL2STR(200) 被替换成了 ("200"),fun_call_rt(func) 中的 #func 被替换成了 "func_for_test(10)",即都被替换成了字符串,在c语言中应该称为字符数组类型。因为 NAME_JOIN(func_for_test1, _1) 只是简单的把两个短语连接为一个短语,而连接后的这个短语是否有效那就要做语法检测了,如上面执行的结果为:打印函数的地

#c++#c语言
c/c++ printf打印颜色控制

实用的printf打印颜色控制,不同的打印等级不同的颜色,打印格式如:

c++命名对象和匿名对象的析构

最近在看muduo库,对里面的日志库比较感兴趣,于是看到了以下的语句:刚看到这些语句时,和平时遇到日志打印的语句不太一样,很疑惑这样一条语句是怎么把日志打印出来的。网上搜索一翻后,学到了一个知识点:匿名对象。其实在平时的编码中我们也经常会遇到匿名对象,只是没有关注。简单的一个匿名对象如:std::string anonymous = std::string("anonymous");像按值传递的对

#c++#开发语言#后端
c++ stl queue的使用

其内存地址是 0x400a50,成员数据随机的,再调用front()后,data指向了队列元素,其地址为:0x605060,打印出成员数据是 10,当执行完pop()后,data还是指向原地址,而CData的析构函数只是输出一行打印信息并没做其他操作。疑惑的是front() 不是返回元素的引用吗?原因为:front() 返回值赋值给的普通变量,变量 data 取到的应该是该元素的一份拷贝,如果用引

#c++
c++ 线程std::system_error

c++11 已经支持了语言级别的线程,而不再是要开发者去依赖pthread进行多线程的开发,但在编写c++线程的时候还是要链接pthread库的,即-lpthread,否则会出现一个运行时错误,如:

#c++
RSA 加密解密使用实例(c++实现)

本文不讨论RSA加密解密本身,只记录使用方法及遇到的坑,RSA原理及注意事项可在网上查找。背景:公司的一个需求,要求对接客户的一个平台,通信方式为MQTT,数据包含Token及json内容,在通信过程中发送的MQTT信息必须带上Token,这个Token是要从客户平台获取,通过http协议,POST方法。然后POST方法的body信息需要进行RSA加密(提供了公钥和私钥,公钥加密私钥解密),然后再

c++ new 源码学习一下

这里我们看到不抛出异常的函数是调用了上面那个抛出异常的函数的。所以一旦你设置了异常处理函数,就不能正常抛出异常了,因为只有当 handler = nullptr 时才会抛出异常。而且还提供了设置异常处理函数的接口,它的返回值是前异常处理函数指针。如果分配不到足够的空间,则异常处理函数会一直被调用,直到能分配到足够的空间。那 new 里到底做了什么呢?上面的 new 有异常时抛出异常,而这个函数是不

#c++
c++ 空类的大小

我想应该是:成员函数和static成员是属于类层面的,它不属于对象,那对象是什么呢?对象就是定义的变量,而非static成员数据才是每个对象的东西,它们是对象的一部分。简单地说,类只有在实例化的时候才会分配内存空间,即定义变量时(栈上定义或堆上定义),那分配内存空间肯定要有大小,而空类的大小是由编译器定的,这样一个类定义多个对象时,能保证每个对象的地址都是唯一的。注意:然而在 c 语言中,空的结构

#c++
c++11 线程函数参数的传递-引用和指针

c++11线程类里,传递参数给可调用对象或函数,基本上就是简单地将额外的参数传递给 std::thread 构造函数。但重要的是,参数会以默认的方式被复制到内部存储空间,在那里新线程可以访问它们,即使函数中的相应参数期待着引用。...

#c++
relocation R_X86_64_32 against `.bss‘ can not be used when making a PIE object

原因是在编译json_value.o 和 json_write.o 时,没有添加编译选项 -fPIC,这个编译选项用于生成位置无关代码(Position Independent Code)。当构建共享库或PIE时,需要确保所有代码都是位置无关的,以便它们可以在任何内存地址上加载和执行。

#c++#c语言#linux
    共 25 条
  • 1
  • 2
  • 3
  • 请选择