易截截图软件、单文件、免安装、纯绿色、仅160KB

C指针臆想

指针,众所周知,时为一内存地址.抛开OS级别或更低的硬件级别不说,仅对应用内的使用进行小小的臆测讨论.
首先,在应用内,用malloc申请到的一块地址应该是连续的(猜测,逻辑上连续,实际上物理如何分布不予关注).
其次,数据存在在内存中都是以2进制形式存放.不存在数据类型,因此,对内存数据的操作,只要遵循进出类型一致即可.
此处的进,是指将数据存放到内存中,如存进一个int型的数据,读取的时候按int读取即可,存储一个char*的数据,按char*读取即可.
#define mAlloc(p,size)\
{\
errno=0;\
if((p=(char*)malloc(sizeof(char)*size)))==null){\
printf("malloc error[%d]\n",errno);\
exit(-1);\
}\
memset(p,0,sizeof(char)*size);\
}\
#define setInt(p,v) (*(int*)(p)=v)
#define setStr(p,v,size) strcpy(p,v)
int main()
{
char *p;

mAlloc(p,10);
setInt(p,100);
printf("int:%d\n",*(int*)p);

setStr(p+sizeof(int),"abc");
printf("str:%s\n",p+sizeof(int));

return 1;



相关文档:

[C代码]通讯录

/*****************test.c****************/
#include <stdio.h>
#include <stdlib.h>
#include "addr.h"
int main()
{
 int flag=1;
 while(flag)
 {
  switch(choose_menu())
  {
  case 1:add_person();break;
  case 2:show_person_in ......

[转载] Lua 中与 C 不同的设计

尽管 Lua 的关键词的设计,运行符的设计,语法的设计等方面与 C 很相似,但我们还要注意其明显不同的地方。
条件判断时的真假条件
Lua 中所有的值都可以作为条件。在控制结构的条件中除了 false 和 nil 为假,其他值都为真。所以 Lua 认为 0 和 空串 都是真。
而 C 中,认为只要是在内存中表现为 0 值的符号都为假。
字 ......

C\C++ byte或者char数组转int值

假设有char a[2];
如要把a转换为int值。应是如下写法int b=*(int *)a;
即,先把指针a 转换为一个int指针,然后再此基础上取值。
但是另一种写法 int b=(int)(*a);是不对的,*a 取a的内存单元内容,因为现在a是char指针,所以只会取a[1]中内容,最大为255. 这里要说明的是,在把char或byte数组转换为其他类型的值时,要先 ......

C程序员的情书

#include <stdio.h>
#include <string.h>
int
main(void)
{
char str[] =
"3BVPSq4xF.K?=u#,"
"G'K<MrDnRr7gH%#,"
"XKf<f%G`w^=?C<#,"
"HgU_AnNR?*PDQU#,"
......

c库函数详解——assert

c库函数详解——assert
函数名: assert
功  能: 测试一个条件并可能使程序终止
用  法: void assert(int test);
程序例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
struct ITEM {
   int key;
   int value;
};
/* add item to ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号