杂记

同一编译单元内部重名符号在编译期便被阻止,而不同编译单元之间重名符号要到链接期才会被发现。

编译单元:#include 完头文件的内容之后(即将头文件内容粘贴到cpp中之后)的cpp文件就是编译单元,简单说便是经过预处理的cpp文件。

条件编译是为了防止同一个.c文件中包含多个相同的.h文件。

C++ primer P58:头文件中一般包含类的定义,extern变量和函数声明。

CAS:将某处内存地址值(1个字节)与期望值比较,若相等,则将该内存地址处值替换为新值。

命名空间的修改:可以多次声明和定义同一命名空间,每次给这一命名空间添加新成员,编译器会自动合并这些同名命名空间。


Linux关闭防火墙:

  1.重启后生效:

    开启:chkconfig iptables on

    关闭:chkconfig iptables off

  2.即时生效:

    开启:service iptables start

    关闭:service iptables stop


telnet 远程登录

FTP    文件传输协议

SMTP 简单邮件传送协议

SNMP 简单网络管理协议

ARP   地址解析协议

RARP 逆地址解析协议


A 0.0.0.0

B 128.0.0.0

C 192.0.0.0

D 224.0.0.0

E 240.0.0.0


gdb 调试

set print repeats

设置打印数组长度上限值,如果数组中连续相同的成员数量超过这个上限,gdb会打印字符串“<repeats n times>”,而不是重复打印这些相同的成员。

show print repeats

显示打印重复相同成员上限数量。


apache:侧重http server

tomcat:侧重servlet引擎,若以standalone方式运行,功能上与Apache等效,支持jsp,但对静态网页不太理想。

Apache是web服务器,tomcat是应用(Java)服务器,只是一个servlet容器,可认为是Apache扩展,但可以独立于Apache运行,换句话说,Apache是辆卡车,可以装一些诸如html的东西,但不能装水,装水要有容器,该容器可以不放在卡车上。


指针类型的强制转换只是将地址中取出的数据解释为不同类型。

int temp = 55;
char *p = (char*)&temp;
printf("p=%c
",*p);
View Code

输出结果是:p=7。 (7的ASCII码为55)


windows下转换成功的utf-8格式txt可能为由玻镁板格式,会引起解析错误,没法去掉该bomb头,改为无bomb的utf-8格式文件。

检测utf-8中BOM命令:

grep -I -r -l $'xEFxBBxBF' /path


如果将中文直接写到源文件里,编译时,就会以当时文件编码规范来为该字符串常量编码,程序打出来的是以当时文件编码格式决定的。

一般来说,包含中文的文件被file判断成ISO-8859就说明该文件是gbk编码,因为ISO-8859所有系列都没有一个是支持中文的编码流。

Unicode是字符集,utf-8是编码方式。

utf-8在有大量英文少量中文的文件里远比gbk要省空间,比如各种程序代码。

GBK兼容GB2312,繁简都有,后者只是简体字。


原文地址:https://www.cnblogs.com/1024incn/p/4111490.html