易截截图软件、单文件、免安装、纯绿色、仅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

C/C++是最主要的编程语言,这里列出了50名优秀网站

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段
2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C++脚本和程序。所有程序都分为不同的类别。
3、http://www.planetsourcecode.com/vb/default.asp?lngWId=3 --超过万行C和C++免费的源代码
4、http://freshmeat.net/browse/164/ --超过9000个C编写的项目。
5、http://www.daniweb.com/code/c.html --DANIWEB提供的实用代码段 。
6、http://www.programmersheaven.com/tags/C/ --programmersheaven.com上的C编程资源。
7、http://www.ddj.com/code/ddj.html --Dr. Dobb’s Journal的源代码。
8、http://www.cprogramming.com/cgi-bin/source/source.cgi --C和C + +编程资源。
9、http://www.codecogs.com/ --CodeCogs是一项协作的开放源码库,C/C++的数值 ......

C/C++是最主要的编程语言,这里列出了50名优秀网站

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段
2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C++脚本和程序。所有程序都分为不同的类别。
3、http://www.planetsourcecode.com/vb/default.asp?lngWId=3 --超过万行C和C++免费的源代码
4、http://freshmeat.net/browse/164/ --超过9000个C编写的项目。
5、http://www.daniweb.com/code/c.html --DANIWEB提供的实用代码段 。
6、http://www.programmersheaven.com/tags/C/ --programmersheaven.com上的C编程资源。
7、http://www.ddj.com/code/ddj.html --Dr. Dobb’s Journal的源代码。
8、http://www.cprogramming.com/cgi-bin/source/source.cgi --C和C + +编程资源。
9、http://www.codecogs.com/ --CodeCogs是一项协作的开放源码库,C/C++的数值 ......

C/C++程序内存中数据存储区分类

    在C/C++中,内存中数据存储分成4个区,分别是堆、栈、全局/静态存储区和常量存储区。
      栈(stack),就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
      堆(heap),一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。
      全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的(DATA段)和未初始化的(BSS段),在C++里面没有这个区分了,它们共同占用同一块内存区。
      常量存储区,常量字符串就是放在这里的,不允许修改(通过非正当手段也可以修改,而且方法很多),程序结束后由系统释放。
 
|----------------------|
|   内核虚拟存储器  |
|----------------------|
|   用户栈(Statk)  |
|----------------------|
|               |      &nb ......

C/C++程序内存中数据存储区分类

    在C/C++中,内存中数据存储分成4个区,分别是堆、栈、全局/静态存储区和常量存储区。
      栈(stack),就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。
      堆(heap),一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。
      全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的(DATA段)和未初始化的(BSS段),在C++里面没有这个区分了,它们共同占用同一块内存区。
      常量存储区,常量字符串就是放在这里的,不允许修改(通过非正当手段也可以修改,而且方法很多),程序结束后由系统释放。
 
|----------------------|
|   内核虚拟存储器  |
|----------------------|
|   用户栈(Statk)  |
|----------------------|
|               |      &nb ......

几种C/C++的函数压栈方式

一,不同关键字,系统压栈方式
1,如果函数func是__cdecl(VC下的默认调用方式),调用时情况如下
int main()
{
//参数从右到左压栈
push 4
push 3
push 2
push 1
call func
add esp 0x10 //调用者恢复堆栈指针esp,4个参数的大小是0x10(4x4)
}
C调用约定(即用__cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。
_cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。VC将函数编译后会在函数名前面加上下划线前缀。是MFC缺省调用约定
2.如果函数func是__stdcall,调用时情况如下
int main()
{
//参数从右到左压栈
push 4
push 3
push 2
push 1
call func
//恢复堆栈指针由被调用者func负责,方法是"ret 0x10"
}
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名 ......

几种C/C++的函数压栈方式

一,不同关键字,系统压栈方式
1,如果函数func是__cdecl(VC下的默认调用方式),调用时情况如下
int main()
{
//参数从右到左压栈
push 4
push 3
push 2
push 1
call func
add esp 0x10 //调用者恢复堆栈指针esp,4个参数的大小是0x10(4x4)
}
C调用约定(即用__cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。
_cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。VC将函数编译后会在函数名前面加上下划线前缀。是MFC缺省调用约定
2.如果函数func是__stdcall,调用时情况如下
int main()
{
//参数从右到左压栈
push 4
push 3
push 2
push 1
call func
//恢复堆栈指针由被调用者func负责,方法是"ret 0x10"
}
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名 ......

C/C++/Java for语句规范写法浅析(二重及以上循环)

 举个简单例子:用二重循环输出1-100 数字;
 当然我这里是举例子针对二重及以上的循环,
完全可以使用单循环,于是便飞快的完成了以下
 代码:
  如下就用C/C++举例。
 C++代码(VS2008):
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0;
    int j = 0;
    int count = 0;
    cout<<"Run Result:"<< endl;
    for (;i<10;i++)
    {
        for (;j<10;j++)
        {
            count++;
            cout<< "\t"<< count<<endl;
        }
    }
    return 0;
}
 
  Run Result:
        ......

C/C++/Java for语句规范写法浅析(二重及以上循环)

 举个简单例子:用二重循环输出1-100 数字;
 当然我这里是举例子针对二重及以上的循环,
完全可以使用单循环,于是便飞快的完成了以下
 代码:
  如下就用C/C++举例。
 C++代码(VS2008):
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0;
    int j = 0;
    int count = 0;
    cout<<"Run Result:"<< endl;
    for (;i<10;i++)
    {
        for (;j<10;j++)
        {
            count++;
            cout<< "\t"<< count<<endl;
        }
    }
    return 0;
}
 
  Run Result:
        ......

C/C++/Java for语句规范写法浅析(二重及以上循环)

 举个简单例子:用二重循环输出1-100 数字;
 当然我这里是举例子针对二重及以上的循环,
完全可以使用单循环,于是便飞快的完成了以下
 代码:
  如下就用C/C++举例。
 C++代码(VS2008):
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0;
    int j = 0;
    int count = 0;
    cout<<"Run Result:"<< endl;
    for (;i<10;i++)
    {
        for (;j<10;j++)
        {
            count++;
            cout<< "\t"<< count<<endl;
        }
    }
    return 0;
}
 
  Run Result:
        ......

C 语言数据对齐

#include <stdio.h>    
struct Foo1
{
   char a;
   int  b;
   char c;
   int  d;
};
#pragma pack (2)
struct Foo2
{
   char a;
   int  b;
   char c;
   int  d;
};
#pragma pack ()
struct Foo3
{
   char a;
   char c;
   int  b;
   int  d;
};
struct Foo4
{
   char a;
   int  b;
   char c;
   int  d;
} __attribute__ ((__packed__));
int main(int argc, char **argv)
{
   printf("size of Foo1: %d ", sizeof(struct Foo1));
   printf("size of Foo2: %d ", sizeof(struct Foo2));
   printf("size of Foo3: %d ", sizeof(struct Foo3));
   printf("size of Foo4: %d ", sizeof(struct Foo4));
   return 0;
}
下面的小程序是关于数据对齐的一个试验,在我的 2.4 内核的 Linux 上运行结果如下:
size of Foo ......

c/c++的知识点收集

1.动态获得内存的代码:
void GetMemory(char **p, int num)
{
  *p = (char *)malloc(sizeof(char) * num);
}
char* GetMemory2(int num)
{
  char* p = (char *)malloc(sizeof(char) * num);
  return p;
}
------------------------------------------
错误的代码:
void GetMemory3(char *p, int num)
{
  p = (char *)malloc(sizeof(char) * num);
}///////////////错误在哪里,我就不说,自己去查.
2.strcpy()的代码:
char* strcpy(char* strDest,const char* strSrc)
{
    if(strDest==NULL || strSrc==NULL)      return NULL;
    char* pStr=strDest;
    while((*strDest++=*strSrc++)!='\0)
          NULL;
    return pStr; 
}
3.memcpy()的代码:
void* memcpy(char* strDest,const char* strSrc,size_t size)
{
    if(strDest==NULL||strSrc==NULL) return NULL;
    if(size <=0) return NULL;   
    ......

c/c++的知识点收集

1.动态获得内存的代码:
void GetMemory(char **p, int num)
{
  *p = (char *)malloc(sizeof(char) * num);
}
char* GetMemory2(int num)
{
  char* p = (char *)malloc(sizeof(char) * num);
  return p;
}
------------------------------------------
错误的代码:
void GetMemory3(char *p, int num)
{
  p = (char *)malloc(sizeof(char) * num);
}///////////////错误在哪里,我就不说,自己去查.
2.strcpy()的代码:
char* strcpy(char* strDest,const char* strSrc)
{
    if(strDest==NULL || strSrc==NULL)      return NULL;
    char* pStr=strDest;
    while((*strDest++=*strSrc++)!='\0)
          NULL;
    return pStr; 
}
3.memcpy()的代码:
void* memcpy(char* strDest,const char* strSrc,size_t size)
{
    if(strDest==NULL||strSrc==NULL) return NULL;
    if(size <=0) return NULL;   
    ......
总记录数:2015; 总页数:336; 每页6 条; 首页 上一页 [292] [293] [294] [295] 296 [297] [298] [299] [300] [301]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号