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

C 基础

递归链表反序
void Invert(struct node *p)
{
     if(p->next==NULL) return;
     if(p->next->next!=0)
          Invert(p->next);
    p->next->next = p;
    p->next = 0;
}
两种方法判断是否有相同字串,一是效率最高的,二是最节省内存的.
int fn1(const char *str)
{
 unsigned char *p = ( unsigned char *)str;
 int a[255]={0};
 for( ; *p != '\0'; p++ )
  if( ++a[*p] == 2 ) return 1;
 return 0;
}
int fn2(const char *str)
{
   const char *p1, *p2;
   if (*str == '\0')
      return 0;
   for (p1 = str; *p1 != ''; p1++)
      for (p2 = p1 + 1; *p2 !=''; p2++) 
         if (*p1 == *p2)
            return 1;
   return 0;
}
一句话判断是否是2的幂次: #define Is2n(a)  ( a > 0 ) && ( ( ( ~a + 0x01 ) &a ) == a )
int a[3];
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
p=a;
q=&a[2];

a[q-p]=?
当然是
2

高低位交换:
int test;
test = ( test<<8 & 0xFF00 ) | ( test>>8 & 0x00FF );

找一个数1的个数:
内存换速度
char one[256]={0,1,1,2,1,2,……} // 此为 0-255 每个数中 1 的个数
int func(int n){
  for(int i=0;n>0;n>>=8)
    i+=one[n&255];
  return i;
}
2)&优化
int func(int n){
  int count=0;
  while(n>0){
    n&=(n-1);
    count++;
  }
  return count;
}


相关文档:

c与c++的区别(基础)

为了用vc写一个最简单的 socket 程序,花费了一个下午的时间,过程中出现的错误有:
'SOCKET' : illegal use of this type as an expression
syntax error : missing ';' before 'type'
syntax error : identifier 'InitWinsock'   -->       bool   InitWinsock( ......

C#中C/C++程序员注意问题

1、C/C++程序员请注意,不能在case语句不为空时“向下执行”。
  2、值类型和引用类型之间的区别:C#的基本类型(int,char等)都是值类型,是在栈中创建的。而对象是引用类型,创建于堆中,需要使用关键字new。
  3、在C#中通过实例访问静态方法或成员变量是不合法的,会生成编译器错误。但是我们可以通过声 ......

B/S+C/B+webservice+ALC

今天突然想到B/S结构里,webform是无法取得客户端的MAC地址和硬件信息的,就突发奇想,用C/S结构,但是因为C/S结构的很多的东西不能动态,就考虑到了C/B结构
最后决定用webservice+ALC+C/B结构 ,搭建我的OA系统
努力ing ......

C: 面向对象(2)

演示如何用C实现继承,重载之类的玩艺儿。VC++6.0编译通过。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifndef class
        #define class struct
#endif
#ifndef private
        #define privat ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号