您的位置:首页 > 运维架构 > Linux

怎样向一个c++函数传数组、Linux下怎么显示unicode字符、Linux的地址空间

2011-06-16 14:37 471 查看
我们都知道,下面两个函数的参数实际上都是整型指针:

void test1(int * p)

{

}

void test2(int p[10])

{
//下面这句话如果直接看汇编代码的话实际上是直接对num赋值1

int num = sizeof(p)/sizeof(p[0]);

}

编译器并不会把p[10]当做数组来处理,但是如果真的需要以一个数组为参数

该怎么办呢?可用下面的方式:
void test3(int (&p)[10])

{

//下面这句话如果直接看汇编代码的话实际上是直接对num赋值10

int num = sizeof(p)/sizeof(p[0]);

}
也就是传数组的引用。

Linux

下怎么显示
unicode

字符?

wchat_t text[5]=L”test”;

调用
wprintf(”%ls”,text);

注意:

1.

这里
wprintf

的格式字符串中要加
l



2.


linux

中,
wchar_t


4

字节,这点和
windows

下不一样,
windows

下是
2

字节。

?

Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到
0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使
用,称为“用户空间)。因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。于是,从具体进程的角度来看,每个进程可以
拥有4G字节的虚拟空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐