可怕的extern关键字
实际项目中看到有人用extern关键字来声明外部函数,这是一个很不好的行为。 一、不利之处 如果函数原型改变的话,每个extern声明的地方都要改一遍。 如果有地方没改到呢? 我们通过一个例子来看下悲剧是怎么发生的。 二、例子 头文件api.h中声明了一个函数func: #ifndef __API_H__ #define __API_H__ void func(int a); ...
实际项目中看到有人用extern关键字来声明外部函数,这是一个很不好的行为。 一、不利之处 如果函数原型改变的话,每个extern声明的地方都要改一遍。 如果有地方没改到呢? 我们通过一个例子来看下悲剧是怎么发生的。 二、例子 头文件api.h中声明了一个函数func: #ifndef __API_H__ #define __API_H__ void func(int a); ...
最近在项目中遇到问题,在x86平台下调试好的程序,移植到arm上,程序行为完全变了。 示例如下: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char value = 129; if (value > 128) { printf("Bi...
本文主要介绍如何基于openssl制作X.509自签名证书,以及如何使用该证书签发新证书。 一、生成根证书 1. 生成根证书私钥(pem文件) 下面的命令用来生成根证书的私钥,相关参数说明如下: genrsa:使用RSA算法产生私钥,尾部的2048代表密钥长度为2048比特。 aes256:使用256位密钥的AES算法对私钥进行加密,也可以选择其他算法进行加密。若使用加密,...
本文基于busybox 1.23.2 中udhcp的实现,总结几点使用注意事项。 不同客户端、服务器实现可能会有差异。 DHCP client —- udhcpc -R选项可以让udhcpc进程退出的时候释放ip地址。 DHCP Server —- udhcpd 不会主动释放IP地址,即使原来的租约超时(前提是IP地址还没分配完,或者分配完了但是没有新的客户端请求地址...
本文主要介绍如何在source insight上集成svn命令。 1. SVN Log option->Custom Commands 添加一个命令 名字:SVN Log (随便自己写) 运行:”C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe” /command:log /path:%f /notempfile /closeo...