易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

c程序设计语言官方题解版勘误1

#include <stdio.h>
#define MAXHIST 15
#define MAXWORD 11
#define IN  1
#define OUT  0
//打印输入中单词长度的水平方向直方图,
void main()
{
 int c, i, nc, state;
 int len;     //length of each bar
 int maxvalue;    //maximum value for wl[]
 int ovflow;     //number of overflow words
 int wl[MAXWORD];   //word length count
 
 state = OUT;
 nc = 0;                     //number of chars in a word
 ovflow = 0;
 for (i = 0; i < MAXWORD; ++i)//数组初始化
  wl[i] = 0;
 
 
 while((c = getchar()) != EOF){
  if (c == ' ' || c == '\n' || c == '\t'){
   state = OUT;
   if(nc > 0)
    if(nc < MAXWORD)
     ......

c函数的参数传递

在C语言中,所有传递给函数的参数都是按值传递的。
#include <iostream>
using namespace std;
void Out(int* p)
{
    int j = 11;
    p = &j;
    *p = 12;
    cout<<*p<<endl;
}
int main(int argc,char*argv[])
{
    int i = 10;
    Out(&i);
    cout<<"i="<<i<<endl;
    cin>>i;
} ......

extern "C"


1.引言
C++语言的创建初衷是“a better
C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。
 
2.从标准头文件说起
 
某企业曾经给出如下的一道面试题:
 
为什么标准头文件都有类似以下的结构?
 
    #ifndef __INCvxWorksh
    #define
__INCvxWorksh
 
    #ifdef __cplusplus
    extern "C" {
   
#endif
 
    /*...*/
 
    #ifdef __cplusplus
    }
   
#endif
 
    #endif /* __INCvxWorksh */
 
显然,头文件中的编译宏“#ifndef __INCvxWorksh、#define
__INCvxWorksh、#end ......

汇编看c之一,简单函数调用

简单的函数调用,通过简单的函数调用反汇编可以清楚了解如下
1.栈到底是什么,如何操纵栈的?
2.参数和临时变量是以什么形式在哪存放?
3.如何传递返回值?
举例:
#include <stdio.h>
int add(int a,int b)
{
     int c=0;
     c=a+b;
     return c;
}
int main(void)
{
     int x=0;
     int y=3;
     int z=4;
     x=add(y,z);
     return 0;
}
这是一个简单的通过调用函数计算两数之和的程序
VC6.0生成的汇编代码如下:
add函数
{
0040D750   push        ebp
//把main函数的ebp压栈,ebp=1000,esp=896
0040D751   mov         ebp,esp
//得到“新”栈基址,这里的新的意思是每个函数访问属于自己的一块栈区域,其实是相邻的内存区域,或者说栈只有一个。ebp=896,esp=896
0040D753   sub      &nbs ......

《C和指针》笔记1

1.scanf格式符        p9
ld    long
lf    double
2.三字母词        p22
    为了表示一些特殊的字符,在老式的机器键盘中可能没有的字符,特别约定了一种三字母词,三字母词都以??开始,如下:
??(     [    ??<    {    ??=    #    ??!    |    ??-    ~
??)    ]    ??>    }    ??/    \    ??'    ^   
3.特殊字符        p23
\a        警告音,在我电脑上不能发音。
\v        垂直制表符
\ddd        八进制转义
\xddd    十六进制转义,注意:如果超过范围,那么结果是未定义的。(国内教科书直接告诉我们是\xdd ......

从bmp转换工具生成的c文件中获得bitmap图像输出

在函数体中添加以下代码:注:memcpy中的bitmap为bmp生成的c文件数组名
 int width = 533;
  int height = 615;  
  BYTE* DDBdata=new BYTE[width*height*2];
  BYTE* DIBdata;
  memcpy(DDBdata,(void *)bitmap,width*height*2);
  
  CDC *pDC=GetDC();
  CDC  memDC ;
  memDC.CreateCompatibleDC(pDC) ;
  CBitmap nBitmap,*pOldBitmap;
  nBitmap.CreateBitmap(width,height,1,16,DDBdata);
  pOldBitmap = memDC.SelectObject(&nBitmap);
  pDC->BitBlt(0,0,width,height, &memDC, 0, 0, SRCCOPY ) ;
  memDC.SelectObject(pOldBitmap) ;
  memDC.DeleteDC()  ;
  pDC->DeleteDC();
  delete []DDBdata; ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [4671] [4672] [4673] [4674] 4675 [4676] [4677] [4678] [4679] [4680]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号