随笔分类 -  C

【转】用C写一个简单病毒
摘要:[摘要]在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现.[Abstract] This paper introduce the charateristic of the computer virus,then show a simple example written by TURBOC2.0.一、什么是病毒 恶意软件可能是第一个对我们产生影响的计算机安全问题.所以病毒在信息安全中是很重要的.我们要对付病毒,就要了解病毒.写一些病毒是一个很好的办法.如果要写一个病毒,先要知道它是什么.可以给病毒一个定义,这一定义是被广泛认可的。Frederic Cohen博士 阅读全文

posted @ 2013-07-03 14:20 烟雨飘零 阅读(1708) 评论(1) 推荐(1)

C预定义宏
摘要:作用:对于__FILE__,__LINE__,__func__这样的宏,在调试程序时是很有用的,因为你可以很容易的知道程序运行到了哪个文件的那一行,是哪个函数。下面一个例子是打印上面这些预定义的宏的。__DATE__,__FILE__,__LINE__,__TIME__,__FUNCTION__C标准中指定了一些预定义的宏,对于编程经常会用到。下面这个表中就是一些常常用到的预定义宏。__DATE_%s_进行预处理的日期(“Mmmddyyyy”形式的字符串文字)__FILE__%s代表当前源代码文件名的字符串文字__LINE__%d代表当前源代码中的行号的整数常量__TIME__%s源文件编译时 阅读全文

posted @ 2013-07-02 09:48 烟雨飘零 阅读(415) 评论(0) 推荐(0)

【逻辑】经典过桥问题 【转】
摘要:一、问题 在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。 假设这四人分别为A、B、C、D。很明显,开始两人拿着手电筒过桥后,手电筒就在桥的另一边了,此时需要已经过桥的那两人中的一个再把手电筒送回桥这边。送手电筒回来过桥也要化时间,所以要选一个跑得比较快的。一个很自然的想法就是,每次.. 阅读全文

posted @ 2013-06-28 11:08 烟雨飘零 阅读(2331) 评论(0) 推荐(0)

变量声明和定义及extern 转载
摘要:在讨论全局变量之前我们先要明白几个基本的概念:1.编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两 步工作,第一步,将每个.cpp(.c)和相应.h文件编译成obj文件;第二步,将工程中所有的obj文件进行 阅读全文

posted @ 2013-06-27 14:52 烟雨飘零 阅读(596) 评论(0) 推荐(0)

内存管理内幕mallco及free函数实现
摘要:原文:https://www.ibm.com/developerworks/cn/linux/l-memory/为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。追溯到在 Apple II 上进行汇编语言编程的时代,那时内存管理还不是个大问题。您实际上在运行整个系统。系统有多少内存,您就有多少内存。您甚至不必费心思去弄明白 阅读全文

posted @ 2013-06-27 10:03 烟雨飘零 阅读(3692) 评论(0) 推荐(1)

【转】常用的预处理命令总结
摘要:1. 预处理程序按照ANSI标准的定义,预处理程序应该处理以下指令:#if #ifdef #ifndef #else #elif#endif#define#undef#line#error#pragma#include显然,上述所有的12个预处理指令都以符号#开始,,每条预处理指令必须独占一行。2. #define#define指令定义一个标识符和一个串(也就是字符集),在源程序中发现该标识符时,都用该串替换之。这种标识符称为宏名字,相应的替换称为宏代换。一般形式如下:#define macro-name char-sequence这种语句不用分号结尾。宏名字和串之间可以有多个空白符,但串开始 阅读全文

posted @ 2012-03-02 11:14 烟雨飘零 阅读(505) 评论(0) 推荐(0)

导航