摘要:
位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。 例如:在存放一个开关量时,... 阅读全文
摘要:
Vmware在安装时默认安装了两块虚拟网卡,VMnet1和VMnet8,另外还有VMnet0。这些虚拟网卡的配置都是由Vmware虚拟机自动生成的,一般来说不需要用户自行设置。Vmware提供了三种网络连接模式,分别为1、bridged(桥接模式):默认使用VMnet0,不提供DHCP服务在桥接模式下,虚拟机和宿主计算机处于同等地位,虚拟机就像是一台真实主机一样存在于局域网中。因此在桥接模式下, 我们就要像对待其他真实计算机一样为其配置IP、网关、子网掩码等等。当我们可以自由分配局域网IP时,使用桥接模式就可以虚拟出一台真实存在的主机。2、NAT(网络地址转换模式):默认使用VMnet8,提. 阅读全文
摘要:
嗯,刚开始学Python没几天,挺好的一门语言,十分简洁,也很好上手。 坚持下去,每天至少看一个小时的Python。 阅读全文
摘要:
Fat AP的主要特点:Fat AP是与Fit AP相对来讲的, Fat AP将WLAN的物理层、用户数据加密、用户认证、QoS、网络管理、漫游技术以及其他应用层的功能集于一身。Fat AP无线网络解决方案可由Fat AP直接在有线网的基础上构成。Fat AP设备结构复杂,且难于集中管理。Fit AP的主要特点:Fit AP是相对Fat AP来讲的,它是一个只有加密、射频功能的AP,功能单一,不能独立工作。整个Fit AP无线网络解决方案由AC和Fit AP在有线网的基础上构成。Fit AP上“零配置”,所有配置都集中到AC上。这也促成了Fit AP解决方案更加便于集中管理,并由此具有三层漫游 阅读全文
摘要:
SSID(Service Set Identifier) SSID,AP唯一的ID码,许多人认为可以将SSID写成ESSID,其实不然,SSID是个笼统的概念,包含了ESSID和BSSID,用来区分不同的网络,最多可以有32个字符,无线网卡设置了不同的SSID就可以进入不同网络,无线终端和AP的SSID必须相同方可通信。无线网卡设置了不同的SSID就可以进入不同网络。 SSID通常由AP广播出来,通过终端自带的扫描功能可以相看当前区域内的SSID。出于安全考虑可以不广播SSID,此时用户就要手工设置SSID才能进入相应的网络。这就是有时候为什么我们明明站在无线路由器的旁边却搜不到信号的原... 阅读全文
摘要:
#ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义、文件包含、条件编译)中的一种----条件编译。 在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。 但是在c++语言中,#ifdef的作用域只是在单个文件中。所以如果h文件里定义了全局变量,即使采用#ifdef宏定义,多个c文件包含同一个h文件还是会出现全局变量重定义的错误。使用#ifndef可以避免下面这种错误:如果在h文件中定义了全局变量,一个c文件包... 阅读全文
摘要:
C/C++编译过程C/C++编译过程主要分为4个过程1)编译预处理2)编译、优化阶段3)汇编过程4)链接程序一、编译预处理(1)宏定义指令,如#defineNameTokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必 阅读全文
摘要:
备:对于#include ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h今天有人问我: #include能不能include一个(多个.c文件)?偶的回答是:从理论上讲可以,但是不推荐。 为什么经常见到include .h文件而不是include .c文件?或者说include是不是就是为包含.h文件设定的语法?这个问题的答案偶不知道,没有见有文档记载、说明这个问题。不过从语法角度讲,include的意思就是从当前位置包含另外一个文件,就象宏替换一样把当前行用另外一个文件的整个内容替.. 阅读全文
摘要:
前几天看了《程序员的自我修养——链接、装载与库》中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧。我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下。hello.c源代码如下:View CodeC123456#include int main(){ printf(“Hello, world.\n”); return 0;}通常我们使用gcc来生成可执行程序,命令为:gcc hello.c,默认生成可执行文件a.out其实编译(包括链接)的命令:gcc hello.c 可分解为如下4个大的步骤:预处理(Preprocessing)编译(Co 阅读全文
摘要:
.c文件就是C语言系列的源文件,而H文件则是C语言的头文件,即C系列中存放函数和全局变量的文件,因为C中的函数是被封装起来的,即无法看到其代码。 子程序不要定义在*.h中。函数定义要放在*.c中,而*.h只做声明.否则多引用几次,就会发生函数重复定义的错误。*.h只做声明,编译后不产生代码。这样做目的是为了实现软件的模块化,使软件结构清晰,而且也便于别人使用你写的程序。 纯粹用 C 语言语法的角度,你当然可以在*.h 中放任何东西,因为#include 完全等价于把*.h 文件 Ctrl-C Ctrl-V 到*.c 中,*.h 中应该都是一些宏定义和变量、函数声明,告诉别人你的程序“能... 阅读全文