c++
文章平均质量分 94
wxh_无香花自开
这个作者很懒,什么都没留下…
展开
-
C++笔记: __attribute__的使用
GCC使用__attribute__关键字来描述函数,变量和数据类型的属性,用于编译器对源代码的优化。描述函数属性的几个重要的关键字:void noreturnfun() __attribute__((noreturn));//函数不会返回。void centon() __attribute__((alias("__centon")));//设置函数别名,函数是__原创 2015-01-07 10:04:02 · 2967 阅读 · 0 评论 -
2.C++ STL笔记: Bitset相关
#include#includeusing namespace std;int main(int argc, char* argv[]){ //定义bitset的五种方法 bitset b1; //定义一个32位的bitset bitset b2(8); //定义一个32位的bitset,并以8的二进制位初始化 bitset b3("1100"); //定义一个32位的bit原创 2014-12-11 10:15:04 · 530 阅读 · 0 评论 -
C++类构造函数初始化列表
C++类构造函数初始化列表构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数转载 2014-12-11 18:48:06 · 389 阅读 · 0 评论 -
C/C++语言文件操作之fgets
来说一说fgets(..)函数。 原型 char * fgets(char * s, int n,FILE *stream); 参数: s: 字符型指针,指向存储读入数据的缓冲区的地址。 n: 从流中读入n-1个字符 stream : 指向读取的流。 返回值:转载 2014-12-14 22:53:59 · 7199 阅读 · 0 评论 -
C++笔记:宏的高级使用--##、__VA_ARGS__、__FILE__、__FUNCTION__
先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等宏变量:先举一个例子,会用到上面这些宏:[cpp] view plaincopy#define myprintf(...) printk("[lch]:File:%s, Line:%d, Function:%s,"转载 2015-01-08 12:34:03 · 1339 阅读 · 0 评论 -
C++笔记:map键值类型,元素删除
键值类型:在实现模板时,如果参数用到了map,则常需要使用map的键值类型:map::key_type在map容器内,用做索引的键的类型 map::mapped_type在map容器中,键所关联的值的类型 map::value_typemap的值类型:一个pair类型,pair对应的first,second分别对应上面的两个类型元素删除:在线性容原创 2015-03-25 11:51:13 · 5848 阅读 · 2 评论 -
C++笔记:声明和定义
C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能。什么东西又可以放在cpp文件中。如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!! 声明与定义 声明是将一个名称引入程序。定义提供了一个实体在程序中的唯一描述。声明和定义有时是同时存在转载 2015-03-23 14:02:58 · 519 阅读 · 0 评论 -
C++笔记:全局变量、extern/static/const区别与联系
在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常转载 2015-03-18 09:49:20 · 524 阅读 · 0 评论 -
C++笔记:extern用法
用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或 函数a,我只要直接在源文件中包含#include (xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有 所获了:头文件首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预转载 2015-03-18 09:57:40 · 435 阅读 · 0 评论 -
C++笔记:inline函数
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,转载 2015-03-18 10:20:17 · 444 阅读 · 0 评论 -
linux 动态静态库路径
1. 连接和运行时库文件搜索路径到设置 库文件在连接(静态库和共享 库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到 库的搜索路径之中。设置库文件的搜索路径...转载 2018-12-26 14:22:27 · 2051 阅读 · 0 评论 -
1.C++ STL笔记:Vector相关
Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。头文件 : #include定 义 : vector vt; vector vs;常用操作:原创 2014-12-10 17:37:16 · 439 阅读 · 0 评论 -
c/c++ I/O库函数
转自:http://blog.csdn.net/isgray/article/details/6838341头文件:stdio.h函数列表: 文件操作remove删除文件rename重命名文件tmpfile打开一个临时文件tmpnam产生临时文件名 文件访转载 2014-12-10 10:44:51 · 696 阅读 · 0 评论 -
C/C++string类的实现
#include #include #include #include using namespace std;int mystrlen(const char* p);char* mystrcpy(char* dest, const char* src);class MyString{private: char* m_pData;public: MyString(ch原创 2014-12-16 16:47:36 · 943 阅读 · 0 评论 -
C++笔记:__attribute__
GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。__attribute__ 书写特征是:__attribute__ 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribu转载 2015-01-07 10:17:26 · 2282 阅读 · 0 评论 -
C++笔记:STL扩展hash_map
熟悉STL或熟悉ACM/ICPC的话,其中的set, map, multiset, multimap一定用过无数次了,它们都是用平衡二叉树(红黑树)实现的,复杂度为O(lgn)。我们也知道set, map可以通过哈希来实现,复杂度只有O(1),可惜直到现在,unsorted_set或hash_map都没能成为C++标准的一部分(C++0x,- -b)。不过无论在GNU GCC中还是Microsof转载 2015-01-08 12:28:58 · 2451 阅读 · 0 评论 -
C++笔记:select多路复用机制
函数作用:系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、转载 2015-01-07 20:12:07 · 7896 阅读 · 0 评论 -
C++笔记:可变参数宏__VA_ARGS__
可变参数宏__VA_ARGS__在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:#define pr_debug(fmt,arg...) \printk(KERN_DEBUG fmt,##arg)用可变参数宏(variadic macros)传递可变参数表你可能很熟悉在函数中使用可变参数表转载 2015-01-08 12:37:05 · 879 阅读 · 0 评论 -
C++笔记:模板详解(一)
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使用模板的目的就是能够让程序转载 2015-01-29 10:38:34 · 539 阅读 · 0 评论 -
C++关键字explict的详解和使用
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的构造函数。 * 在C++中,explicit关键字用转载 2014-12-26 08:27:53 · 2298 阅读 · 0 评论 -
各大IT公司校园招聘程序猿笔试、面试题集锦
转自:http://blog.csdn.net/hackbuteer1/article/details/7959921百度一面1、给定一个字符串比如“abcdef”,要求写个函数编程“defabc”,位数是可变的。这个比较简单,我用的是strcpy和memcpy,然后他问有什么优化的办法,我就不知道了。2、socket过程就是socket的server和clie转载 2014-12-16 18:03:29 · 742 阅读 · 0 评论 -
C/C++时间处理函数
C time库中提供了几个时间处理的函数:获取时间clock获取程序从开始到调用clock硬件滴答数difftime获取两个时间的差time获取当前时间转换时间mktime将tm结构转换成time_tasctime将tm结构转换成stringctime转载 2014-12-10 10:41:04 · 457 阅读 · 0 评论 -
#pragma详解
在#Pragma是预处理指令它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器 或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数:(1)messag转载 2014-12-26 18:17:56 · 1103 阅读 · 0 评论 -
GCC常用参数详解
简介gcc and g++现在是gnu中最主要和最流行的c & c++编译器 .gcc/g++在执行编译工作的时候,总共需要以下几步:1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]GCC能够处理的后缀有:...转载 2018-12-26 11:35:01 · 359 阅读 · 0 评论