Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

c°æ±¾Óëc++°æ±¾µÄ¶¯Ì¬Êý×é´úÂë

C°æ±¾£º
vim stash.h
#ifndef STASH_H
#define STASH_H
typedef struct STASHTag {
  int size;  /* Size of each space */
  int quantity; /* Number of storage spaces */
  int next; /* Next empty space */
  /* Dynamically allocated array of bytes: */
  unsigned char* storage;
} Stash;
void initialize(Stash* S, int Size);
void cleanup(Stash* S);
int add(Stash* S, void* element);
void* fetch(Stash* S, int index);
int count(Stash* S);
void inflate(Stash* S, int increase);
#endif //STASH_H
vim stash.c
/* Error testing macros: */
#include <assert.h>
/* Dynamic memory allocation functions: */
#include <stdlib.h>
#include <string.h> /* memcpy() */
#include <stdio.h>
#include "stash.h"
#define STEP 10
void initialize(Stash* S, int Size) {
  S->size = Size;
  S->quantity = 0;
  S->storage = 0;
  S->next = 0;
}
void cleanup(Stash* S) {
  if(S->storage) {
     puts("freeing storage");
     free(S->storage);
  }
}
int add(Stash* S, void* element) {
  /* enough space left? */
  if(S->next >= S->quantity)
    inflate(S, STEP);
  /* Copy element into storage,
  starting at next empty space: */
  memcpy(&(S->storage[S->next * S->size]),
      element, S->size);
  S->next++;
  return(S->next - 1); /* Index number */
}
void* fetch(Stash* S, int index) {
  if(index >= S->next || index < 0)
    return 0;  /* Not out of bounds? */
  /* Produce pointer to desired element: */
 // return &(S->storage[index * S->size]);
  return (S->storage+index*S->size);
}
int count(Stash* S) {
  /* Number of elements in stash */
  return S->next;
}
void inflate(Stash* S, int increase) {
  void* v =
    realloc


Ïà¹ØÎĵµ£º

C Traps and Pitfalls Ëæ±Ê

CÏÝÚåÓÚȱÏÝÕâ±¾Ê鵽ͼÊé¹Ý½èÁ˺ܾã¬Ò»Ö±¶¼Ã»ÓÐϸϸµÄ¿´£¬ÏÖÍêÕûµÄ¿´ÁËÖ®ºó°ÑÈÏΪÖØÒªµÄ£¬Ò»°ãÈË¿ÉÄܺöÊÓµÄÎÊÌâ¸ø×öÁ˱ʼǣ¬Ï£ÍûÓÐËù°ïÖú
2010.02.25
¶þάÊý×é:
int calendar[12][31];
int * p;
int i;
calendar[4]µÄº¬Ò壺
calendar[4]ÊÇcalendarÊý×éµÄµÚ5¸öÔªËØ£¬ÊÇcalendarÊý×éÖÐ12¸öÓÐ×Å31¸öÕûÐÍÔªËصÄÊý×éÖ®Ò» ......

¹ØÓÚchar * c="hello"Óëchar c[]="hello"µÄÇø±ð

char * c = "hello"; cÊǸö·ÖÅäÔÚ¶ÑÕ»ÖеÄÒ»¸ö±äÁ¿¡£ÀïÃæ×°µÄÊÇ×Ö·û´®helloµÄÊ×µØÖ·£¬¶øhelloÊdz£Á¿Çø¡£PEÎļþÔÚ±àÒëµÄʱºò¾ÍÈ·¶¨Á˵ġ£
char []c = "hello";
"hello"ÊÇ·ÅÔÚ¶ÑÕ»Öб£´æµÄ£¬¸úÉÏÃæµÄÄǸöÀý×Ó²»Í¬£¬ÓÉÓÚhelloÊǶÑÕ»ÖеÄËùÒÔÊÇ¿ÉÒÔÐ޸ĵġ£¶ø³£Á¿ÇøÀïµÄÊDz»¿ÉÒÔÐ޸ĵġ£ÒòΪPEµÄÄÚ´æÒ³ÊôÐÔÊÇÖ»¶ÁµÄ¡£µ±È»¿ÉÒÔ ......

¾ÓÈ»´ÓCÅÌÇåÀí³öÀ´3¸öGµÄÀ¬»øÎļþ

1.´ò¿ª¡°ÎҵĵçÄÔ¡±-¡°¹¤¾ß¡±-¡°Îļþ¼ÐÑ¡Ï-¡°²é¿´¡±-ÔÚ¡°ÏÔʾËùÓÐÎļþºÍÎļþ¼Ð¡±Ñ¡ÏîÇ°´ò¹´-¡°È·¶¨¡±
2.ɾ³ýÒÔÏÂÎļþ¼ÐÖеÄÄÚÈÝ£º
x:\Documents and Settings\Óû§Ãû\Cookies\ϵÄËùÓÐÎļþ(±£ÁôindexÎļþ)
x:\Documents and Settings\Óû§Ãû\Local Settings\Temp\ϵÄËùÓÐÎļþ(Óû§ÁÙʱÎļþ)
x:\ ......

[CϵÁÐ]C++³ÌÐòÔ±µÍÊÖóðÑÔ1

[CϵÁÐ]C++³ÌÐòÔ±µÍÊÖóðÑÔ1
±à³ÌÒѾ­3ÄêÁË
ÎÒʱ³£¾õµÃ£¬ Èç¹û3ÄêÇ°µÄÎÒÓÉÏÖÔÚµÄÎÒÀ´Ö¸µãµÄ»°£¬Ó¦¸ÃÓÃ3Ìì¾Í¿ÉÒÔ³öʦÁË¡£
ÎÒµÄÕâƪÎÄÕ¾ÍÊdzåÕâ¸öÄ¿µÄÀ´µÄ¡£ÔÚ½ÓÏÂÀ´Ô¶Ô¶ÉÙÓÚ3ÌìµÄƪ·ùÖУ¬ÎÒ½«´øÁì¶ÁÕß´Ó²ËÄñÒ»Ö±½úÉýµ½COM(ÒòΪÎÒ×Ô¼ºÒ²Ö»»áÕâô¶àÁË)£¬³õѧÕ߶ÁÍêºó£¬Ó¦µ±Ð¡ÓÐËù³É£¬»ù±¾ÉÏÄÜʤÈÎͨ³£¸÷ÖÖСIT¹«Ë¾µÄ³£¹æ¿ª· ......

C¼üÅ̹³×Ó

¸ù¾Ý¡¶Windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ¡·£¨ÂÞÔƱòÖø£©ÊéÉϵÄÀý×Ó£¬²ÉÓÃSDKʵÏÖ¼üÅ̼ǼÆ÷!
main.c
#include <windows.h>
#include "resource.h"
#define DEBUG 0
LRESULT CALLBACK HookKeyboardPro(int code,WPARAM wParam,LPARAM lParam);
BOOL CALLBACK ProcDlgMain(HWND hwndDlg,UINT uMsg,WPARAM wParam ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ