C语言
文章平均质量分 54
zhixingheyi_tian
Intel Big Data. Spark
展开
-
C++字符串输入处理
C++原创 2023-03-21 11:30:20 · 666 阅读 · 0 评论 -
STL哪些事
STL原创 2023-01-04 19:06:42 · 115 阅读 · 0 评论 -
C++ 之 backtrace
backtrace原创 2022-08-01 09:59:46 · 646 阅读 · 0 评论 -
CMakeLists.txt 一二三
TARGET_LINK_LIBRARIES可执行程序 main 链接到 libhelloTARGET_LINK_LIBRARIES(main hello)也可以写成TARGET_LINK_LIBRARIES(main libhello.so)SET_TARGET_PROPERTIESSET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.2 ...原创 2020-04-12 17:12:52 · 456 阅读 · 1 评论 -
C++ 汇编
__cxa_atexit()__cxa_atexit()在Itanium C ++ ABI中定义。当程序以相反的构造顺序退出时,C ++标准要求为全局对象调用析构函数。大多数实现都通过调用C库atexit例程来注册析构函数来处理这个问题。这是有问题的,因为1999 C标准只要求实现支持32个注册函数,尽管大多数实现支持更多。更重要的是,它完全没有处理大多数实现中通过在程序终止之前调用dlclose从正在运行的程序映像中删除[动态共享对象]的能力。下面指定的API旨在在正常程序退出期间提供符合标准的处理原创 2022-04-21 11:38:17 · 1586 阅读 · 0 评论 -
C++ 优化
Inline内联函数从 源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用 函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看 编译器对该函数定义的具体处理。优点:inline函数是一个真正的函数,它可以进行参数检测,相比较于普通函数,它的执行效率上更加快速。缺点:浪费内存。inline函数在函数调用的地方会在预编译的时候生成一份函数的拷贝,也就是说,只要有调用inline函数的地方,就会生成一处拷贝。而普通的函数在函数调用的地方只是原创 2022-04-20 18:09:44 · 458 阅读 · 0 评论 -
CPU相关
Intel X86 CPU# cat testEndian.c#include<stdio.h>int main(void){ int a = 0x12345678; unsigned char *p = (unsigned char *)&a; if (0x78 == *p) { printf("little end\n"); } else原创 2022-04-16 17:17:15 · 947 阅读 · 0 评论 -
C++ 之 函数模板
template <typename ArrayType>arrow::Status WriteValue(uint8_t* buffer_address, int64_t field_offset, const std::shared_ptr<ArrayType>& array, int32_t col_index, int64_t num_rows, std::vecto原创 2022-04-15 18:23:09 · 860 阅读 · 0 评论 -
C++ 函数重载
C++ 函数重载 (参数分别为基类 派生类类型)#include <iostream> #include <typeinfo> #include <cxxabi.h>std::string getClearName(const char* name){ int status = -1; char* clear_name = abi::__cxa_demangle(name, NULL, NULL, &status); cons原创 2022-04-01 20:19:29 · 790 阅读 · 0 评论 -
C/C++ 宏定义
##的使用## 是一种分割链接方式,它的作用是先分隔,然后进行强制连接#define TYPE(type, name) type name##_##type##_typeTYPE(int, a) => int a_int_typetypede struct{ int nData1; int nData2; int nData3; ...}TData;#define DEFADDDATA(name, type) \void Op##_##name(TD原创 2022-04-01 18:18:43 · 1260 阅读 · 0 评论 -
C++ programming resolution
unterminated argument list报错在程序文件的最后一行。error: unterminated argument list invoking macro “RETURN_NOT_OK”一般是少个 “(” 或者 “}”导致整个程序文件不完整。原创 2022-01-21 17:32:14 · 419 阅读 · 0 评论 -
C++那些事
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换原创 2022-01-13 11:40:33 · 820 阅读 · 0 评论 -
C++ 编译, 调试,及问题汇总 (GDB)
keyword: override基类钟定义的虚函数使用override 关键字。派生类中必须继承arrow/cpp/src/arrow/dataset/file_orc.h:64:35: error: ‘arrow::Future<nonstd::optional_lite::optional<long int> > arrow::dataset::OrcFileFormat::CountRows(const std::shared_ptr<arrow::dataset原创 2021-10-29 19:16:55 · 376 阅读 · 0 评论 -
动态库、静态库的一些测试
example# cat world.c #include <stdio.h>void world(void){ printf("world.\n");}# cat hello.c #include <stdio.h>void world(void);void hello(void){ printf("hello\n"); ...原创 2019-07-22 10:54:09 · 617 阅读 · 0 评论 -
memkind 内存申请和释放
#include &lt;memkind.h&gt;memkind_create_pmem////// \brief Create a new PMEM (file-backed) kind of given size on top of a temporary file/// in the given directory dir/// \note STANDARD API...原创 2018-12-03 10:45:56 · 597 阅读 · 0 评论 -
malloc and free
void *malloc(size_t size);void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么类型的数据(比如是char还是int或者其他数据类型)。void free(void *ptr);与malloc()函数配对使用,释放malloc函数申请的动态内存。(另:对于free§这句语句,如果p 是...原创 2018-12-03 10:31:52 · 192 阅读 · 0 评论 -
C语言那些事之动态库
检查可执行程序所依赖的库ldd testvim /etc/ld.so.conf ,添加动态库搜索路径include ld.so.conf.d/*.conf./加载改配置文件ldconfig原创 2018-12-04 17:34:41 · 475 阅读 · 1 评论