Golang中glog库的使用方法 Golang

Golang中glog库的使用方法

一、关于glog库 golang中的glog库是google著名开源C++日志库glog的golang版本,在golang默认日志库的基础上做了更进一层的封装使得该库能更贴近日常使用。项目首页为gol...
阅读全文
extern C/C++

extern “C”语句的作用

c++中,调用c语言函数时要对函数添加声明extern "C",这是因为c和c++的符号表机制不一样导致的。 假设存在函数fun,经过gcc编译后,该函数在符号表中的名字是fun,但是经过g++编译后...
阅读全文
数据结构之二叉搜索树 C/C++

数据结构之二叉搜索树

一、二叉搜索树 1.1 什么是二叉搜索树 算法导论中对二叉搜索树(Binary Search Tree, 简称BST)的定义: 设x是二叉搜索树中的一个节点,如果y是x左子树中的一个节点,那么y.ke...
阅读全文
linux c获取文件路径和文件名 C/C++

linux c获取文件路径和文件名

linux提供了两个函数分别用来获取文件所在的目录和文件名: 它们被包含在头文件libgen.h中,dirname取得的路径名不包含最后的/,basename取自于最后一个下划线后的内容。 以下是几个...
阅读全文
linux多进程间文件共享机制 C/C++

linux多进程间文件共享机制

一、原理 linux支持多进程间共享打开文件,即同一时刻允许多个进程同时打开同个文件,每个进程之间的读写操作互不影响。 为了实现这一个机制,linux内核使用了三种数据结构来表示打开的文件,它们之间的...
阅读全文
一次undefined reference to ***的编译错误记录 C/C++

一次undefined reference to ***的编译错误记录

一、问题描述 在编译C++程序时,遇到以下问题: 看到错误的第一直觉是共享库出问题了,因为以前出现这个问题都是因为库没有加进来,但是反复确认过后发现共享库并没有问题。 第一:编译的时候使用-l选项包含...
阅读全文
c语言可变长参数传递问题 C/C++

c语言可变长参数传递问题

一、问题描述 C语言中的函数提供了一种可变长参数机制,这个机制使得我们在操作的时候充分自定义自己的功能,例如使用最多的printf函数: 它的函数声明为:printf(const char *fmt,...
阅读全文
程序编译和链接的过程 C/C++

程序编译和链接的过程

一、概述 一个程序在从源码变成二进制程序之间一共有四个步骤:预处理,编译,生成目标文件,链接。 以下展示了一个简单的加法程序的编译过程: 二、预处理 预处理阶段主要有以下的操作: 头文件替换 宏定义替...
阅读全文