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

C/C++位操作
一、传统的C方式位操作:
1.基本操作:
  使用一个unsigned int变量来作为位容器。
2.操作符:
|  按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。
&  按位与操作符::result=exp1&exp2;当exp1和exp2中对应位全为1时,result中对应位为1,否则为0。
^  按位异或或操作符:result=exp1^exp2;当exp1和exp2中对应位不相同时,result中对应位为1,否则为0。
~  反转操作符:将位容器中的所有位都反转,1变为0,0变为1。
< < 按位左移操作符:exp < <n,将容器中所有的位向左移n位,空出的位用0填充。
>> 按位右移操作符:exp>>n,将容器中所有的位向右移n位,空出的位用0填充。
|=,&=,^= 分别对应|&^三种操作符的复合操作符。
3.常用操作
  这里我们假设有一个result的unsigned int变量用来储存32个学生的成绩(通过和不通过分别用0和1),这样result就有33位(result从右至左,从0开始计算位数,在这个例子中0位被浪费)。
(a) 将第27位设置为及格(设作1)其他位不变:
  result|=(1 < <2 ......

C/C++位操作

C/C++位操作
一、传统的C方式位操作:
1.基本操作:
  使用一个unsigned int变量来作为位容器。
2.操作符:
|  按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。
&  按位与操作符::result=exp1&exp2;当exp1和exp2中对应位全为1时,result中对应位为1,否则为0。
^  按位异或或操作符:result=exp1^exp2;当exp1和exp2中对应位不相同时,result中对应位为1,否则为0。
~  反转操作符:将位容器中的所有位都反转,1变为0,0变为1。
< < 按位左移操作符:exp < <n,将容器中所有的位向左移n位,空出的位用0填充。
>> 按位右移操作符:exp>>n,将容器中所有的位向右移n位,空出的位用0填充。
|=,&=,^= 分别对应|&^三种操作符的复合操作符。
3.常用操作
  这里我们假设有一个result的unsigned int变量用来储存32个学生的成绩(通过和不通过分别用0和1),这样result就有33位(result从右至左,从0开始计算位数,在这个例子中0位被浪费)。
(a) 将第27位设置为及格(设作1)其他位不变:
  result|=(1 < <2 ......

symbian Open C and Open C++ 相关

nokia wiki:http://developer.symbian.org/wiki/index.php/Open_C_and_Open_C%2B%2B_Technical_Overview/zh-hans
symbian上开发openc时需要注意的问题
http://blog.csdn.net/sizhiguo/archive/2009/05/21/4206138.aspx
第一:如printf、sprint、文件操作、socket操作等,模拟器屏幕都会出现白屏等待,并且是一直下去。
解决方法:
1、修改配置文件c:/system/data/config.ini(模拟器路径),重定向stdio/stdout到文件。
具体如下:
config.ini(c:\system\data\)
[STDIO]
STDIN = MEDIA1
STDOUT = MEDIA4
[MEDIA1]
type = file
path = C:\system\data\in.txt
max size = 100
[MEDIA2]
type = serial
baud = 214
port = COMM::10
[MEDIA3]
type = console
width = -1
height = -1
[MEDIA4]
type = file
path = c:\system\data\out.txt
max size = 1000
2、上述办法之后还不行请关闭杀入软件,尤其是360软件!
真机上安装文件时需要首先安装如下文件,所在目录为c:\Symbian\9.2\S60_3rd_FP1\nokia_plugin\openc\s60opencsis
1)pips_nokia_1_3_SS.sis
2)glib.sis
3)ssl.sis
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sizhiguo/ ......

symbian Open C and Open C++ 相关

nokia wiki:http://developer.symbian.org/wiki/index.php/Open_C_and_Open_C%2B%2B_Technical_Overview/zh-hans
symbian上开发openc时需要注意的问题
http://blog.csdn.net/sizhiguo/archive/2009/05/21/4206138.aspx
第一:如printf、sprint、文件操作、socket操作等,模拟器屏幕都会出现白屏等待,并且是一直下去。
解决方法:
1、修改配置文件c:/system/data/config.ini(模拟器路径),重定向stdio/stdout到文件。
具体如下:
config.ini(c:\system\data\)
[STDIO]
STDIN = MEDIA1
STDOUT = MEDIA4
[MEDIA1]
type = file
path = C:\system\data\in.txt
max size = 100
[MEDIA2]
type = serial
baud = 214
port = COMM::10
[MEDIA3]
type = console
width = -1
height = -1
[MEDIA4]
type = file
path = c:\system\data\out.txt
max size = 1000
2、上述办法之后还不行请关闭杀入软件,尤其是360软件!
真机上安装文件时需要首先安装如下文件,所在目录为c:\Symbian\9.2\S60_3rd_FP1\nokia_plugin\openc\s60opencsis
1)pips_nokia_1_3_SS.sis
2)glib.sis
3)ssl.sis
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sizhiguo/ ......

编写可移植C/C++程序要点

      1.分层设计,隔离平台相关的代码。就像可测试性一样,可移植性也要从设计抓起。一般来说,最上层和最下层都不具有良好的可移植性。最上层是
GUI,大多数GUI都不是跨平台的,如Win32 SDK和MFC。最下层是操作系统API,大多部分操作系统API都是专用的。
  
如果这两层的代码散布在整个软件中,那么这个软件的可植性将非常的差,这是不言自明的。那么如何避免这种情况呢?当然是分层设计了:
  
最底层采用Adapter模式,把不同操作系统的API封装成一套统一的接口。至于封装成类还是封装成函数,要看你采用的C还是C++写的程序了。这看起
来很简单,其实不尽然(看完整篇文章后你会明白的),它将耗去你大量的时间去编写代码,去测试它们。采用现存的程序库,是明智的做法,有很多这样的库,比
如,C库有glib(GNOME的基础类),C++库有ACE(ADAPTIVE Communication
Environment)等等,在开发第一个平台时就采用这些库,可以大大减少移植的工作量。
  最上层采用MVC模型,分离界面表现与
内部逻辑代码。把大部分代码放到内部逻辑里面,界面仅仅是显示和接收输入,即使要换一套GUI,工作量也不大。这同时也是提高可测试性的手段之一� ......

编写可移植C/C++程序要点

      1.分层设计,隔离平台相关的代码。就像可测试性一样,可移植性也要从设计抓起。一般来说,最上层和最下层都不具有良好的可移植性。最上层是
GUI,大多数GUI都不是跨平台的,如Win32 SDK和MFC。最下层是操作系统API,大多部分操作系统API都是专用的。
  
如果这两层的代码散布在整个软件中,那么这个软件的可植性将非常的差,这是不言自明的。那么如何避免这种情况呢?当然是分层设计了:
  
最底层采用Adapter模式,把不同操作系统的API封装成一套统一的接口。至于封装成类还是封装成函数,要看你采用的C还是C++写的程序了。这看起
来很简单,其实不尽然(看完整篇文章后你会明白的),它将耗去你大量的时间去编写代码,去测试它们。采用现存的程序库,是明智的做法,有很多这样的库,比
如,C库有glib(GNOME的基础类),C++库有ACE(ADAPTIVE Communication
Environment)等等,在开发第一个平台时就采用这些库,可以大大减少移植的工作量。
  最上层采用MVC模型,分离界面表现与
内部逻辑代码。把大部分代码放到内部逻辑里面,界面仅仅是显示和接收输入,即使要换一套GUI,工作量也不大。这同时也是提高可测试性的手段之一� ......

C中如何调用C++?C++中如何调用C

C中如何调用C++?C++中如何调用C?这个问题是许多软件公司面试过程中会问到的一个常见问题。回答这个问题并不困难,那就是使用
extern "C",但是面试官可能想通过这个问题了解你对C/C++掌握的程度。下面仔细分析该问题。
    首先,作
为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使
用。
    通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模
块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;
它会在连接阶段中从模块A编译生成的目标代码中找到此函数
extern "C"是连接申明(linkage
declaration),被extern "C"修饰的变量和函数是按照C语言方式编译和连接的,来看看C++中对类似C的函数是怎样编译的:

为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假 ......

C中如何调用C++?C++中如何调用C

C中如何调用C++?C++中如何调用C?这个问题是许多软件公司面试过程中会问到的一个常见问题。回答这个问题并不困难,那就是使用
extern "C",但是面试官可能想通过这个问题了解你对C/C++掌握的程度。下面仔细分析该问题。
    首先,作
为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使
用。
    通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模
块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;
它会在连接阶段中从模块A编译生成的目标代码中找到此函数
extern "C"是连接申明(linkage
declaration),被extern "C"修饰的变量和函数是按照C语言方式编译和连接的,来看看C++中对类似C的函数是怎样编译的:

为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假 ......

C/C++中重复定义的问题


用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或
函数a,我只要直接在源文件中包含#include<xxx.h>
(xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有
所获了:
头文件
首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编
译时在#include的地方展开一下,没别的意义了,其实头文件主要是给别人看的。
我做过一个实验,将头文件的后缀改成xxx.txt,然后在引用该头文件的地方用
#include"xxx.txt"
编译,链接都很顺利的过去了,由此可知,头文件仅仅为阅读代码作用,没其他的作用
了!
不管是C还是C++,你把你的函数,变量或者结构体,类啥的放在你的.c或者.cpp文件里。然后编译成
lib,dll,obj,.o等等,然后别人用的时候 最基本的gcc hisfile.cpp yourfile.o|obj|dll|lib 等等。

对于我们程序员而言,他们怎么知道你的lib,dll...里面到底有什么东西?要看你的头文件。你的头文件就是对用户的说明。函数,参数,各种各样的接
口的说明。
   
那既然是说明,那� ......

C/C++中重复定义的问题


用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或
函数a,我只要直接在源文件中包含#include<xxx.h>
(xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有
所获了:
头文件
首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编
译时在#include的地方展开一下,没别的意义了,其实头文件主要是给别人看的。
我做过一个实验,将头文件的后缀改成xxx.txt,然后在引用该头文件的地方用
#include"xxx.txt"
编译,链接都很顺利的过去了,由此可知,头文件仅仅为阅读代码作用,没其他的作用
了!
不管是C还是C++,你把你的函数,变量或者结构体,类啥的放在你的.c或者.cpp文件里。然后编译成
lib,dll,obj,.o等等,然后别人用的时候 最基本的gcc hisfile.cpp yourfile.o|obj|dll|lib 等等。

对于我们程序员而言,他们怎么知道你的lib,dll...里面到底有什么东西?要看你的头文件。你的头文件就是对用户的说明。函数,参数,各种各样的接
口的说明。
   
那既然是说明,那� ......

Window+GCC+CDT用Eclipse开发C、C++

Eclipse除了可以開發Java之外,還支援了許多語言,現在先介紹
C、C++的開發環境設定,以後有機會再介紹其它的。Enjoy it!
OS:Windows XP Professional SP1
使用版本:Eclipse 2.1.2
一.首先要下載CDT,Eclipse 2.1.2使用者,請下載這項:
CDT 1.2 Full for Windows R2.1.1
1.2.0 GA - Full - Windows。
Eclipse 2.1.3使用者請下載:CDT 1.2.1。
Eclipse 3.0
M7使用者請下載:CDT 2.0 M7。
Eclipse 3.0 M8使用者請下載:CDT 2.0 M8。
Eclipse 3.0
M9使用者請下載:CDT 2.0 M9。
下載網址:http://www.eclipse.org/cdt/
安裝:將解壓縮後的features、plugins整個資料夾複製到Eclipse安裝資料
裡,重新開啟Eclipse即可。
二.下載可在Windows上使用的GNU C、C++編譯器,這裡要下載的是:MinGW。
Download頁面很長 ......

Window+GCC+CDT用Eclipse开发C、C++

Eclipse除了可以開發Java之外,還支援了許多語言,現在先介紹
C、C++的開發環境設定,以後有機會再介紹其它的。Enjoy it!
OS:Windows XP Professional SP1
使用版本:Eclipse 2.1.2
一.首先要下載CDT,Eclipse 2.1.2使用者,請下載這項:
CDT 1.2 Full for Windows R2.1.1
1.2.0 GA - Full - Windows。
Eclipse 2.1.3使用者請下載:CDT 1.2.1。
Eclipse 3.0
M7使用者請下載:CDT 2.0 M7。
Eclipse 3.0 M8使用者請下載:CDT 2.0 M8。
Eclipse 3.0
M9使用者請下載:CDT 2.0 M9。
下載網址:http://www.eclipse.org/cdt/
安裝:將解壓縮後的features、plugins整個資料夾複製到Eclipse安裝資料
裡,重新開啟Eclipse即可。
二.下載可在Windows上使用的GNU C、C++編譯器,這裡要下載的是:MinGW。
Download頁面很長 ......
总记录数:969; 总页数:162; 每页6 条; 首页 上一页 [8] [9] [10] [11] 12 [13] [14] [15] [16] [17]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号