![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
C/C++
simeone18
这个作者很懒,什么都没留下…
展开
-
char (*p)[]与char *p[]
char p[] = "hello,world"; 是对字符串"hello,world"做了拷贝,所以可以对拷贝字符串做任意修改char *p = "hello,world"; 字符串常量将自己在静态存储区中的地址赋给了p指针char (*p)[SIZE]:指向一维数组的指针,一维数组只能有SIZE个元素例:#include #define STRSIZE 20int main(void){ char str[][STRSIZE]={"hello", "world!"}; char原创 2010-08-07 09:02:00 · 13391 阅读 · 0 评论 -
linux下的线程及同步机制(1)
大部分内容摘抄自《Linux一站式学习》,只是一个笔记,具体内容,推荐看原书==================================================================================================================================由于同一进程的多个线程共享同一地址空间,因此Text原创 2013-03-06 22:50:03 · 766 阅读 · 0 评论 -
#ifdef 中的逻辑与或操作
转载自:http://wutiam.net/2009/08/logical-and-or-operation-in-ifdef/ 原本用宏定义包起来的代码类似如下:#ifndef A// codes#endif // A 现在要加入一个宏定义 B,实现类似这样的条件判断(显然实际上这样是不行的):#ifndef A && ifdef B 其实应该这样:#转载 2011-07-08 14:37:15 · 3169 阅读 · 0 评论 -
解决typedef重定义问题
1.暴力修改头文件#ifndef#define#include "xxx.h"#endif2.使用gcc 4.6允许重复定义,两次typedef不冲突原创 2011-07-08 20:08:05 · 13819 阅读 · 0 评论 -
内存对齐的规则以及作用
首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int转载 2011-07-06 13:06:55 · 549 阅读 · 0 评论 -
不要再使用TCHAR和_T了
很不幸的是,我现在正在进行的项目就是使用的TCHAR,在linux下没有tchar.h这个文件,我需要自己在头文件加入#ifdef UNICODE#define _T L###define _tprintf wprintf#else#define _T#def转载 2011-07-07 13:03:09 · 10622 阅读 · 0 评论 -
C/C++的64位整型
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout 本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分别是转载 2011-07-02 13:42:36 · 715 阅读 · 0 评论 -
关于运算符重载
之前看《effective c++》的时候,对这一部分印象比较深刻,虽然读的时候有写笔记,但是现在还是写下来我对这一部分理解。详细的内容可以看条款19:分清成员函数,非成员函数和友元。条款19的结论如下:只有在下列情况下,让函数f成为类c的非成员函数。其余情况,f都声明为c的成员函数。(1)operator>>和operator>或operator(2)如果f需要对最左边的参数进行类型转换,让f成为非成员函数。如果f还要访问c的非公有成员,让f成为c的友元函数。照着书上的内容写了两个很简单的例子: (1)关原创 2011-05-17 23:01:00 · 702 阅读 · 0 评论 -
linux下的线程及同步机制(2)
2.1 Mutex互斥锁(Mutex,Mutual Exclusive Lock),获得锁的线程可以完成“读-修改-写”的操作,然后释放锁给其它线程,没有获得锁的线程只能等待而不能访问共享数据,这样“读-修改-写”三步操作组成一个原子操作,要么都执行,要么都不执行,不会执行到中间被打断,也不会在其它处理器上并行做这个操作。Mutex用pthread_mutex_t类型的原创 2013-03-06 22:55:59 · 710 阅读 · 0 评论