C/C++
6月29
百度百科:

引用

  函数功能:该函数显示或隐藏光标。
  函数原型:int ShowCursor(BOOL bShow);
  参数:
  bShow:确定内部的显示计数器是增加还是减少,如果bShow为TRUE,则显示计数器增加1,如果bShow为FALSE,则计数器减1。
  返回值:返回值规定新的显示计数器。
  备注:该函数设置了一个内部显示计数器以确定光标是否显示,仅当显示计数器的值大于或等于0时,光标才显示,如果安装了鼠标,则显示计数的初始值为0。如果没有安装鼠标,显示计数是C1。
  速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
11月19

在Windows环境下,一般采用“非阻塞”方式。对于客户端Socket来说,如果把Cli
entType特性设为ctNonBlocking,表示采用非阻塞方式进行连接。当位于另一端的服务
器端Socket试图进行读或写时,客户端Socket就会得到通知(OnRead事件或OnWrite事件
)。
9月15
1、基础介绍
try
{
//程序中抛出异常
throw value;
}
catch(valuetype v)
{
//例外处理程序段
}
语法小结:throw抛出值,catch接受,当然,throw必须在“try语句块”中才有效。
9月14
    什麽是STL呢?STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list, vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。    STL的目的是标准化组件,这样你就不用重新开发它们了。你可以仅仅使用这些现成的组件。STL现在是C++的一部分,因此不用额外安装什麽。它被内建在 你的编译器之内。因为STL的list是一个简单的容器,所以我打算从它开始介绍STL如何使用。如果你懂得了这个概念,其他的就都没有问题了。另外, list容器是相当简单的,我们会看到这一点。    这篇文章中我们将会看到如何定义和初始化一个list,计算它的元素的数量,从一个list里查找元素,删除元素,和一些其他的操作。要作到这些,我们将 会讨论两个不同的算法,STL通用算法都是可以操作不止一个容器的,而list的成员函数是list容器专有的操作。
6月19

getchar()
        函数名:getchar()
        头文件:stdio.h
  功  能:从I/O流中读字符
  原  型:int getchar(void);
getch()
  函数名:getch():
  头文件:conio.h
  功  能:从控制台读取一个字符,但不显示在屏幕上
  原  型:int getch(void)
  返回值:读取的字符
getche()
        函数名:getche
        头文件:conio.h
  功  能:从控制台取字符(带回显)
  用  法:int getche(void);
Tags:
3月18
本文主要目的是用c和c++分别实现动态分配二、三维数组。一般而言,在C中用malloc和free实现,而在C++中用new和delete。 new和delete是c++操作符,malloc和free是c语言函数,它们都可以用来为对象动态分配空间,最大的区别在于:当用new和 delete为对象分配空间或delete对象时,将缺省的调用对象的构造函数及析购函数,而malloc和free是原来c库中的函数,显然没有这项功 能,因此,在c++中,最好使用new和delete。

动态分配二维数组的程序
//////////////c用malloc和free//////////////////////////////
#include   "stdio.h"  
#include   "stdlib.h"  

void   main()  
{  
    
int **p;  
    
int i,j;
[font=Comic Sans MS][color=#008000]//p[4][8]
    //开始分配4行8列的二维数据  
Tags: ,
9月27

  这是初学者问得最多的一个问题,所以这里有必要多费点笔墨。让我们先看一个结构体:
  struct S1
  {
  char c;
  int i;
  };
  问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。

  Why为什么受伤的总是我
  请不要沮丧,我们来好好琢磨一下sizeof的定义——sizeof的结果等于对象或者类型所占的内存字节数,好吧
Tags:
9月27

1。void *memset(void *s,int c,size_t n)
总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

2。例子

main(){
char *s="Golden Global View";

clrscr();

memset(s,'G',6);//貌似这里有点问题//
printf("%s",s);

getchar();
return 0;
} 
3。memset() 函数常用于内存空间初始化。如:
char str[100];
memset(str,0,100);
Tags: ,
9月19

我们看下面的函数,函数体中只有一行语句:
    double Average(double total, int number){
      return total/number;
      }
定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它被频繁地调用的时候,由于调用函数的开销,会对应用程序的性能(时间+空间效率,这儿特指时间)有损失。例如,Average在一个循环语句中重复调用几千次,会降低程序的执行效率。
    那么,有办法避免函数调用的开销吗?对于上面的函数,我么可以把它定义为内联函数的形式:
    inline double Average(double total, int number){
      return total/number;
    }
函数的引入可以减少程序的目标代码,实现程序代码的共享。
Tags: ,
9月19


      n年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀为基础的命名方法,这种方法后来称为"匈牙利表示法"以记念他.他的思想是根据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标识符一个前缀以说明它的数据类型.因此,整型变量的前缀是n,长整型变量是nl,字符型数组变量是ca,以及字符串(以空类型结尾的字符数组)以sz为前缀.这些名字可能会非常古怪.比如说:lpszFoo表示"Foo"是一个指向以空字符为结尾的字符串的长整型指针.
      这种方法的优点是使人能够通过变量的名字来辨别变量的类型,而不比去查找它的定义.遗憾的是,这种方法不仅使变量名字非常绕口,而且使改变变量类型的工作变得十分艰巨.在Windows3.1中,整型变量为16为宽.如果我们在开始时采用了一个整型变量,但是在通过30---40个函数的计算之后,发现采用整型变量宽度不够,这时我们不仅要改变这个变量的类型,而且要改变这个变量在这30--40个函数中的名字.
      因为不切实际,除了一些顽固的Windows程序员外已经没有人再使用"匈牙利表示法"了.毫无疑问,在某种场合它依然存在,但大部分人现在已经抛弃它了.一般而言,输入前缀是一种糟糕的想法,因为它把变量于其类型紧紧地绑在了一起.
      对于30行以下的函数,匈牙利方法一般有优势。尤其是对界面编程,有优势。但对于有强烈的算法要求、尤其是有很多抽象类型的C++程序,匈牙利方法简直是一个灾难。看你用在什么地方。现在有了很好的IDE工具,如:VC,SourceInsight等.选中变量,会自动提示告诉你它的声明和定义,这样匈牙利命名法就没有很大的必要了.无非就是为了程序可读性较好.实际上良好的代码书写习惯比强制使用匈牙利命名法更重要.系统性。整体性。可读性。分类要清楚。要有注释!
      匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。还是那句话,并不是要求所有的读者都要去遵守,但是希望读者作为一个现代的软件开发人员都去遵守它。

匈牙利命名法

MFC、句柄、控件及结构的命名规范
Tags: ,
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]