随笔分类 - C/C++
摘要:1 魔方阵概念魔方阵是指由1,2,3……n2填充的,每一行、每一列、对角线之和均相等的方阵,阶数n = 3,4,5…。魔方阵也称为幻方阵。例如三阶魔方阵为:魔方阵有什么的规律呢?魔方阵分为奇幻方和偶幻方。而偶幻方又分为是4的倍数(如4,8,12……)和不是4的倍数(如6,10,14……)两种。下面分...
阅读全文
摘要:用gdb查看内存格式x /nfu参数说明x是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值 x 按十六进制格式显示变量d 按十进制格式显示变量u 按十进制格式显示无符号整型o 按八进制格式显示变量t 按二进制格式显示变量a 按十六进制格式显示变量i ...
阅读全文
摘要:列出一些常见问题:一,如何使用core文件使用core文件在core文件所在目录下键入:gdb -c core它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此程序的信号等等。如果你已经知道是由什么程序生成此core文件的,比如MyServer崩...
阅读全文
摘要:使用gdb和core dump迅速定位段错误 关键字:gdb、段错误、core dump一、什么是core dumpcore:内存、核心的意思;dump:抛出,扔出;core dump:前提:当某程序崩溃的一瞬间,内核会抛出当时该程序进程的内存详细情况,存储在一个名叫core.xxx...
阅读全文
摘要:core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump) 在程序运行的过程中,有的时候我们会遇到S...
阅读全文
摘要:Linux创建线程使用int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)Linux...
阅读全文
摘要:在写跨平台的项目时,获取可执行文件的目录是各平台特定的接口,也就是说各平台有不同的方式。Mac OS X: _NSGetExecutablePath() (man 3 dyld)Linux: readlink /proc/self/exeSolaris: getexecname()FreeBSD: ...
阅读全文
摘要:本文为转载,阅读不友好,请先查看原文:https://blog.gmem.cc/cmake-study-note收下为原文内容================>基础知识CMake简介CMake是一个开源的可扩展工具,用于独立于编译器的管理构建过程。CMake必须和本地构建系统联合使用,在每个源码目录...
阅读全文
摘要:valgrind是一个强大的工具,最常用的功能是用它来检测内存泄漏和非法内存的使用。要想让valgrind报告的更加细致,请使用-g进行编译。基本命令如下:$ valgrind --tool=memcheck --leak-check=yes program可以检测如下问题:1. 如果malloc/...
阅读全文
摘要:虽然是写C++出身,但还真不知道这两个宏是什么作用。查了一下,参见这里。__STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS are a workaround to allow C++ programs to use stdint.h macros speci...
阅读全文
摘要:directoryopendir#include #include DIR *opendir(const char *name);/* * On success, a pointer to the directory stream is returned. * On error, ...
阅读全文
摘要:在C++标准库容器vector的容量是不会自动的缩减的,也就是说删除元素操作,其引用、指针、迭代器也会继续有效。那么当在一个较大的vector中删除了大量的元素之后,其实际的size比较小,而其capacity比较大,如果对空间比较敏感,希望vector的容量能够缩小一些,这时可以使...
阅读全文
摘要:要使用C++中的标准模板库中的容器,其元素要满足以下三个条件:元素必须可以通过copy构造函数进行复制,且二者进行相等测试返回true。元素必须可以通过赋值操作符完成赋值操作。元素必须可以通过析构函数完成销毁操作。当然下面几种操作在需要时也必须满足:序列容器构建非空容器时,默认构造函...
阅读全文
摘要:C++函数模板可以显示调用与可以隐式调用首先定义函数模板:template inline const T& c_max (const T& a, const T& b){ return a (1, 2);上面的调用会将参数先强制转换为double类型,然后调用编译类型为doub...
阅读全文
摘要:写跨平台的项目常常需要在代码中判断平台的类型,加载不同的资源以及使用不同的接口。在不同的平台中定义了不同的宏。常用的如下1. Windows_WIN32 32位和64位系统都有定义_WIN64 仅64位系统有定义2. Unixunix__unix__unix__3. Mac OS X__APPLE_...
阅读全文
摘要:由于枚举也是用户定义类型,所以是可以定义运算符, 如:1 enum Day {sun, mon, tue, wen, thu, fri, sat};2 3 Day& operator++(Day& d)4 {5 return d = (sat == d) ? sun : Day(sta ...
阅读全文
摘要:T2Uw(w)=x, x≥0时T2Uw(w)=x+2w, x<0时利用上面的公式,重新计算2.19的问题。
阅读全文
摘要:在2.17的基础上完成下表:x十六进制T2U(x)-80x88-30xD13-20xE14-10xF1500x0050x55
阅读全文
摘要:将32位补码表示的数转换为10进制数。32位补码十进制0x1b84400x14200xFFFFFE58-4240xFFFFFE74-3960x44680xFFFFFEC8-3120x10160xC120xFFFFFEEC-2760x2032
阅读全文
摘要:假设w=4,我们能给每个可能的十六进制数字赋予一个数值,假设用一个无符号或者补码表示。完成下表:x无符号(B2U(x))补码(B2T(x))十六进制二进制0xE111014-20x00000000x50101550x810008-80xD110113-30xF111115-1
阅读全文

浙公网安备 33010602011771号