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

extern "C" 详解

 extern "C" 详解
在C++中,为了支持重载机制,在编译生成汇编代码时,函数的名字要加入函数的参数类型或者返回值类型等信息
在C中,因没有重载机制,编译后的代码只是简单的函数名字而已,不加入其他的信息 
1. 不加入extern "C"
testexternc.cpp
int mytest(void)
{
int a=10,b=20;
int c=a+b;
return c;
}
 
 
Command: g++ -S testexternc.cpp或者gcc -S testexternc.cpp
Generated file: testexternc.s
        .file        "testexternc.cpp"
        .text
        .align 2
.globl _Z6mytestv
        .type        _Z6mytestv, @function
_Z6mytestv:
.LFB2:
        pushl        %ebp
.LCFI0:
        movl        %esp, %ebp
.LCFI1: ......

c/c++强制类型转换

 Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?
A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:
代码:
int i;
double d;
i = (int) d;
或者:
i = int (d);
对于具有标准定义转换的简单类型而言工作的很好。然而,这样的转换符也能不分皂白的应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:'reinterpret_cast', 'static_cast', 'dynamic_cast' 和 'const_cast',目的在于控制类(class)之间的类型转换。
代码:
reinterpret_cast<new_type>(expression)
dynamic_cast<new_type>(expression)
static_cast<new_type>(expression)
const_cast<new_type>(expression)
1 reinterpret_cast
'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体的地址值作为整数值?)
这个操作符能够在非相关的类型之间转换。操作结果只是简单的从一 ......

c/c++强制类型转换

 Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?
A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:
代码:
int i;
double d;
i = (int) d;
或者:
i = int (d);
对于具有标准定义转换的简单类型而言工作的很好。然而,这样的转换符也能不分皂白的应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:'reinterpret_cast', 'static_cast', 'dynamic_cast' 和 'const_cast',目的在于控制类(class)之间的类型转换。
代码:
reinterpret_cast<new_type>(expression)
dynamic_cast<new_type>(expression)
static_cast<new_type>(expression)
const_cast<new_type>(expression)
1 reinterpret_cast
'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体的地址值作为整数值?)
这个操作符能够在非相关的类型之间转换。操作结果只是简单的从一 ......

采用C++的ACE库实现的一个通用的C/S架构通信程序

 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。
ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。
我最近采用ACE实现了一个通用的C/S架构通信程序,具体实现简述如下:
1. 服务器端:一个采用领导者/跟随者模型的线程池不断地接受从多个客户端发来的消息,并放入一个消息队列,然后又有一个采用半同步/半异步模型的线程池不断地从这个消息队列中取出消息进行处理。
服务器端代码如下:(共10个文件)
ACE_Server.cpp
#include "ace/SOCK_Acceptor.h"
#include "ace/Acceptor.h"
#include "ac ......

采用C++的ACE库实现的一个通用的C/S架构通信程序

 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。
ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE还使系统的配置和重配置得以自动化。
我最近采用ACE实现了一个通用的C/S架构通信程序,具体实现简述如下:
1. 服务器端:一个采用领导者/跟随者模型的线程池不断地接受从多个客户端发来的消息,并放入一个消息队列,然后又有一个采用半同步/半异步模型的线程池不断地从这个消息队列中取出消息进行处理。
服务器端代码如下:(共10个文件)
ACE_Server.cpp
#include "ace/SOCK_Acceptor.h"
#include "ace/Acceptor.h"
#include "ac ......

弄了半夜就没想明白,掉进C陷阱了,555

 
//输入一个数组,再修改这个数组所有元素,如何实现?
int main()
{
 vector<int> a;
 int i(0);
 while(cin>>i)
  a.push_back(i);
 //////////////////////////////////////////////////////输出建立的数组:
 cout << "得到的数组为:" << endl;
 for(vector<int>::iterator p=a.begin();p!=a.end();p++)
  cout << *p << " ";
 cout << endl;
 //////////////////////////////////////////////////////通过输入修改数组全部元素:
 
 for(vector<int>::iterator p=a.begin();p!=a.end();p++){
  int temp(0);
  cin >> temp;
  *p=temp;
 }
 cout << "修改后的数组为:" << endl;
 for(vector<int>::iterator p=a.begin();p!=a.end();p++)
  cout << *p << " ";
 cout << endl;
 
}
//结果显示都为temp的初始化值0,因为Ctrl+Z后就无法cin所以无法修改元素。
//通过调用函数也无法实现 f ......

C、C++和C#的不同之处

C是面向过程的程序设计,程序=数据结构+算法 [最原始,但编个程确实不易]
C++是面向对象的程序设计,程序=多个类+消息(类=数据结+算法)[比较容易上手]
C# 是纯面向对象的语言[更加比较容易上手]
VC/VC++/VC# 只是用来开发C/C++/C#应用程序的软件中的一种。
......

C、C++和C#的不同之处

C是面向过程的程序设计,程序=数据结构+算法 [最原始,但编个程确实不易]
C++是面向对象的程序设计,程序=多个类+消息(类=数据结+算法)[比较容易上手]
C# 是纯面向对象的语言[更加比较容易上手]
VC/VC++/VC# 只是用来开发C/C++/C#应用程序的软件中的一种。
......

C、C++和C#的不同之处

C是面向过程的程序设计,程序=数据结构+算法 [最原始,但编个程确实不易]
C++是面向对象的程序设计,程序=多个类+消息(类=数据结+算法)[比较容易上手]
C# 是纯面向对象的语言[更加比较容易上手]
VC/VC++/VC# 只是用来开发C/C++/C#应用程序的软件中的一种。
......

经典c/c++算法

二分查找的代码.
int bfind(int* a,int len,int val)
{
    int m = len/2;
    int l = 0;
    int r = len;
    while(l!=m && r!= m)
    {
        if(a[m] > val)
        {
            r = m;
            m = (m+l)/2;
        }
        else if(a[m] < val)
        {
            l = m;
            m = (m+r)/2;
        }
        else
            return m;
    }
& ......

经典c/c++算法

二分查找的代码.
int bfind(int* a,int len,int val)
{
    int m = len/2;
    int l = 0;
    int r = len;
    while(l!=m && r!= m)
    {
        if(a[m] > val)
        {
            r = m;
            m = (m+l)/2;
        }
        else if(a[m] < val)
        {
            l = m;
            m = (m+r)/2;
        }
        else
            return m;
    }
& ......
总记录数:2015; 总页数:336; 每页6 条; 首页 上一页 [230] [231] [232] [233] 234 [235] [236] [237] [238] [239]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号