- 博客(15)
- 资源 (21)
- 收藏
- 关注
原创 C/C++(30)有个词叫条款
1、对于单纯变量,最好以const对象或是enums 替换 #defines.2、对于形似函数的宏(macros),最好改写成inline函数来替换 #defines.3、将某些东西声明为const可以帮助编译器侦测出错误的用法。const可被加于任何作用域内的对象、函数参数、函数返回类型、函数成员体系。4、编译器强制实施bitwise constness,但你编写程序时应该使用“概念上的常量
2018-05-11 09:59:42
357
原创 Ubuntu--(9) Linux下解压缩tar\bz2\gz
Linux下最常用的打包程序就是tar使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下: # tar -cf all.tar *.jpg 这条命令是将
2016-10-28 09:29:22
760
原创 Ubuntu--(8)段错误Segmentation fault (core dumped)
–段错误 指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况,例如: 访问不存在的内存地址includeincludeincludeincludeincludeincludeincludeincludeincludeincludeincludeinclude
2016-10-25 19:57:33
4438
原创 C/C++(7)字符串操作学习
1)字符串操作strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp(p, p1) 忽略大
2016-10-25 10:18:43
781
原创 C/C++(6)va_list、va_start、va_arg、va_end实现可变参数列表函数
经典的可变参数表printf函数的实现原理:在C/C++中,对函数参数的扫描是从后向前的。 函数参数是通过压入堆栈的方式来给函数传参数的,最先压入的参数最后出来,而栈是从内存的高地址向低地址存放的,控制存放位置的是堆栈指针,最先压入的参数是在最上面,最后压入的参数在最下面,结构上看起来是第一个,所以最后压入的参数总是能够被函数找到,因为它就在堆栈指针的上方。printf的第一个被找到的参数就是那个
2016-10-24 17:40:12
1337
原创 C/C++(5)printk函数
strtok#include <iostream>#include <string.h>using namespace std;/* * *--------------------------------- i'm seperator line -----------------------------------* 定义函数:char * strtok(char *s, const char
2016-10-16 11:39:05
1334
原创 Ubuntu--(5)Linux下C++编译生成自定义静态库/动态库
编译生成静态库:1.编写CPP文件test.h#include <iostream>using namespace std;class ADD_SUB{public: int add(int a, int b){ cout << "a + b = " << a + b << endl; return a + b; } int sub(int a
2016-10-16 10:58:56
2805
原创 Ubuntu--(4)小知识--CPPUTest/BitTorrent/cron/LDAP/NTP/proc/SCP-SFTP/UTC-JST/动态DNS/Cynwin/
BitTorrentBitTorrent是文件传输的一种。它可以在服务端负担很小的情况下高速的传输文件。 BitTorrent最大的特点就是服务端可以将文件的片段上传到客户端,客户端得到服务端文件片段的同时,也将自己已有的文件片段传给其它客户端。也就是说,很多客户端一起合作完成文件的下载。即BitTorrent的特点就是下载的客户端越多,下载的速度越快。因此,BitTorrent多用于CD-ROM
2016-10-16 10:27:45
859
原创 Ubuntu--(3)shell快速入门
运行shell文件方法sh -x script_name //将执行脚本并显示所有变量的值sh -n script_name //不执行脚本,只检查语法sh -v script_name //执行脚本前把脚本内容显示在屏幕上 sh script-file //这个好像会有问题./script-file变量运算a=10b=20echo
2016-10-10 21:42:46
713
原创 Ubuntu--(2)MakeFile文件学习
1. 编译—–.o or .obj2. 链接—–可执行文件.exe or .out3. windows下库文件.lib, unix下存档文件.a4.格式target ... : prerequisites ... command ... ...target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prer
2016-10-07 12:18:59
823
原创 C/C++(4)C调用C++方法
1. 非真正意义上的Linux下用C调用C++生成的动态库.so。编写C++源文件:CPPLIB.h和CPPLIB.cpp。 CPPLIB.h:#pragma once#include <iostream>using namespace std;class CPPLIB{public: CPPLIB(); int add(int x, int y); ~CPPLIB();};C
2016-10-07 10:53:14
474
原创 C/C++(3)C++调用C语言的函数和头文件
C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同,C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误,解决办法:加 extern “C”,示例如下: VS2015新建win32控制台应用程序,添加如下文件 c_include.h:#pragma once#include <stdio.h>int a
2016-10-04 18:06:36
4310
原创 C/C++(1)双重指针实现C/C++函数返回多个值
#include <iostream>using namespace std;void intpp(int** p) { *p = new int[3]; for (int i = 0; i < 3; ++i) { (*p)[i] = 3 - i; }}void charpp(char **p) { *p = new char[3]; for
2016-10-04 11:16:25
1530
原创 Ubuntu--(1)编译安装linux内核4.7.5
下载linux源码:linux-4.7.5.tar.xz:https://www.kernel.org/复制到~/Desktop/linux目录下。解压: xz -d linux-4.7.5.tar.xz (这个命令对应的压缩命令为:xz -z file_name.tar.xz)tar -t -f file_name.tar 列举tar文件包含的内容 tar -x -f file_na
2016-10-04 09:56:13
1409
原创 C/C++(2)VS2015生成并使用自定义动态库dll/静态库lib
动态库:1.新建win32控制台应用程序DLLTEST,选中DLL(D)、预编译头(P)、导出符号(X)、自动生成了如下文件: //DLLTEST.h文件 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLLTEST_EXPORTS // 符号编译的。在使用此 DLL 的 // 任何其他项目
2016-10-04 09:44:07
6712
VMProtectUltimate3.3.1
2022-09-30
StudyPE StudyPE StudyPE
2022-09-30
ProcessMonitor x86 + x64 版本
2022-09-30
红黑全能自动脱壳机 红黑全能自动脱壳机
2022-09-30
ASPack v2.4 加壳工具
2022-09-30
AheadLib x86 + x64两个版本
2022-09-30
Cocoa Programming for OS X 5th.rar + PDF文件及配套swift代码
2021-09-14
SnmpUtil工具,一个snmputil.exe和一个snmputilg.exe,各种好用。
2017-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人