易截截图软件、单文件、免安装、纯绿色、仅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++调用C的库函数时,如果头文件定义得不恰当,可能会出现明明某函数在obj文件中存在,但是却发生链接失败的情况,出现如下错误:
  
  undefined reference to 'xxx'
  出现问题的原因是c库函数编译成obj文件时对函数符号的处理和C++不同。因为C++函数支持重载,所以函数符号的处理要更复杂一些,c往往不作修饰。
  例如有函数:
/* dofunc.c */
#include <stdio.h>
int dofunc()
{
        printf("dofunc\n");
}
  使用gcc编译成obj后
gcc -c dofunc.c
#生成 dofunc.o
objdump -x dofunc.o
[    0](sec -2)(fl 0x00)(ty     0)(scl 103) (nx 1) 0x00000000 dofunc.c
File
[    2](sec    1)(fl 0x00)(ty    20)(scl     2) (nx 1) 0x00000000 _dofunc
AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 0
[    4](sec    1)(fl 0x00)(ty     0) ......

用C++调用C的库函数(转)

 用C++调用C的库函数
  C++调用C的库函数时,如果头文件定义得不恰当,可能会出现明明某函数在obj文件中存在,但是却发生链接失败的情况,出现如下错误:
  
  undefined reference to 'xxx'
  出现问题的原因是c库函数编译成obj文件时对函数符号的处理和C++不同。因为C++函数支持重载,所以函数符号的处理要更复杂一些,c往往不作修饰。
  例如有函数:
/* dofunc.c */
#include <stdio.h>
int dofunc()
{
        printf("dofunc\n");
}
  使用gcc编译成obj后
gcc -c dofunc.c
#生成 dofunc.o
objdump -x dofunc.o
[    0](sec -2)(fl 0x00)(ty     0)(scl 103) (nx 1) 0x00000000 dofunc.c
File
[    2](sec    1)(fl 0x00)(ty    20)(scl     2) (nx 1) 0x00000000 _dofunc
AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 0
[    4](sec    1)(fl 0x00)(ty     0) ......

[ASM/C/C++]c语言中static 用法总结

假设在test.h中定义了一个static bool g_test=false;
若test1.c和test2.c都包含test.h,则test1.c和test2.c分别生成两份g_test,在test1.c 中置g_test=true,而test2.c中仍然为false并未改变!shit!!
一、c程序存储空间布局
C程序一直由下列部分组成:
      1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;
      2)初始化数据段(数据段)——在程序中所有赋了初值的全局
变量
,存放在这里。
      3)非初始化数据段(bss段)——在程序中没有初始化的全局变量
;内核将此段初始化为0。
      4)栈——增长方向:自顶向下增长;自动变量
以及每次函数调用时所需要保存的信息(返回地址;环境信息)。
      5)堆——动态存储分。
|-----------|
|                 |
|-----------|
|    栈   ......

[ASM/C/C++]c语言中static 用法总结

假设在test.h中定义了一个static bool g_test=false;
若test1.c和test2.c都包含test.h,则test1.c和test2.c分别生成两份g_test,在test1.c 中置g_test=true,而test2.c中仍然为false并未改变!shit!!
一、c程序存储空间布局
C程序一直由下列部分组成:
      1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;
      2)初始化数据段(数据段)——在程序中所有赋了初值的全局
变量
,存放在这里。
      3)非初始化数据段(bss段)——在程序中没有初始化的全局变量
;内核将此段初始化为0。
      4)栈——增长方向:自顶向下增长;自动变量
以及每次函数调用时所需要保存的信息(返回地址;环境信息)。
      5)堆——动态存储分。
|-----------|
|                 |
|-----------|
|    栈   ......

【C/C++】C++必须知道的基础问题

一、概述
1、C++虽然是从C语言中发展的,但其中有许多要点,是C语言中所没有的,包括引用,内联函数等,在此做一个介绍。
2、对于C/C++中的基础是必须要详细了解的,能够深刻理解其含义以及其来源,是一个人内功深刻的表现。如果一些基础的问题,
都说不上来,又如何给人以信心呢。
二、常见的问题
1、为什么要使用内联函数,其作用是什么?
a:inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。
宏的问题:
使用预处理器实现,没有了参数压栈,代码生成 等一系列的操作
不能进行参数有效性的检测,也就不能享受C++编译器严格类型检查的好处
如果一个操作或者说一个表达式涉及到类的保护成员或私有成员,你就不可能使用这种宏定义来实现
使用内联函数可以完全解决宏使用的几个问题。
2、引用和指针的区别?
a:C++编译器通常采用指针的方式实现,但引用其实不是指针,其行为和指针并不相同。
主要有三大区别:
不存在空引用
所有引用都要初始化
一个引用永远指向用来对它初始化的那个对象。
3、不能重载的运算符
a:  .   ?:   siezof ......

【C/C++】C++必须知道的基础问题

一、概述
1、C++虽然是从C语言中发展的,但其中有许多要点,是C语言中所没有的,包括引用,内联函数等,在此做一个介绍。
2、对于C/C++中的基础是必须要详细了解的,能够深刻理解其含义以及其来源,是一个人内功深刻的表现。如果一些基础的问题,
都说不上来,又如何给人以信心呢。
二、常见的问题
1、为什么要使用内联函数,其作用是什么?
a:inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。
宏的问题:
使用预处理器实现,没有了参数压栈,代码生成 等一系列的操作
不能进行参数有效性的检测,也就不能享受C++编译器严格类型检查的好处
如果一个操作或者说一个表达式涉及到类的保护成员或私有成员,你就不可能使用这种宏定义来实现
使用内联函数可以完全解决宏使用的几个问题。
2、引用和指针的区别?
a:C++编译器通常采用指针的方式实现,但引用其实不是指针,其行为和指针并不相同。
主要有三大区别:
不存在空引用
所有引用都要初始化
一个引用永远指向用来对它初始化的那个对象。
3、不能重载的运算符
a:  .   ?:   siezof ......

C/C++语言void及void指针深层探索

1.概述
  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。
2.void的含义
  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
  void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:
void a;
  这行语句编译时会出错,提示“illegal use of type ‘void‘”。不过,即使void a的编译不会出错,它也没有任何实际意义。
  void真正发挥的作用在于:
  (1) 对函数返回的限定;
  (2) 对函数参数的限定。
  我们将在第三节对以上二点进行具体说明。
  众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。
  例如:
float *p1;
int *p2;
p1 = p2;
  其中p1 = p2语句会编译出错,提示“‘=‘ : cannot convert from &ls ......

C/C++语言void及void指针深层探索

1.概述
  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。
2.void的含义
  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
  void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:
void a;
  这行语句编译时会出错,提示“illegal use of type ‘void‘”。不过,即使void a的编译不会出错,它也没有任何实际意义。
  void真正发挥的作用在于:
  (1) 对函数返回的限定;
  (2) 对函数参数的限定。
  我们将在第三节对以上二点进行具体说明。
  众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。
  例如:
float *p1;
int *p2;
p1 = p2;
  其中p1 = p2语句会编译出错,提示“‘=‘ : cannot convert from &ls ......

★★★ C/C++资料大全,拿来分享 ★★★

★★★ C/C++资料大全,拿来分享 ★★★
国内最专业,也是最专一的 C/C++方向资料站 我们的特点是每天都在不断更新
C/C++源码论坛
www.cssdn.net 【 C  S  S  D  n】
全国最大的C/C++面试题库,网聚了全球500强IT公司C/C++面试题
http://www.cssdn.net/forum-45-1.html
搜集了从2000年至今10年内的C/C++网络编程源码
http://www.cssdn.net/forum-157-1.html
搜集了世界上几乎所有的C/C++数据结构和经典算法源码
http://www.cssdn.net/forum-155-1.html
全部是VC编程的经典作品源码
http://www.cssdn.net/forum-158-1.html
全部是数据库系统方面的课程设计,毕业设计作品源码!
http://www.cssdn.net/forum-159-1.html
3D游戏源码下载区(目前国内最集中的游戏源码下载基地)
http://www.cssdn.net/forum-172-1.html
国内最全面的C/C++书籍资料,与不断完善的VC书籍资料
http://www.cssdn.net/forum-153-1.html  ......

★★★ C/C++资料大全,拿来分享 ★★★

★★★ C/C++资料大全,拿来分享 ★★★
国内最专业,也是最专一的 C/C++方向资料站 我们的特点是每天都在不断更新
C/C++源码论坛
www.cssdn.net 【 C  S  S  D  n】
全国最大的C/C++面试题库,网聚了全球500强IT公司C/C++面试题
http://www.cssdn.net/forum-45-1.html
搜集了从2000年至今10年内的C/C++网络编程源码
http://www.cssdn.net/forum-157-1.html
搜集了世界上几乎所有的C/C++数据结构和经典算法源码
http://www.cssdn.net/forum-155-1.html
全部是VC编程的经典作品源码
http://www.cssdn.net/forum-158-1.html
全部是数据库系统方面的课程设计,毕业设计作品源码!
http://www.cssdn.net/forum-159-1.html
3D游戏源码下载区(目前国内最集中的游戏源码下载基地)
http://www.cssdn.net/forum-172-1.html
国内最全面的C/C++书籍资料,与不断完善的VC书籍资料
http://www.cssdn.net/forum-153-1.html  ......

python,c++,C#随机数生成

先说python
python的random模块提供了多个伪随机数发生器,默认都是用当前时间戳为随机数种子。
下面是该模块几个最常用的函数
random() Return the next random floating point number in the range [0.0, 1.0). 
randint(a,b) Return a random integer N such that a <=
N <= b
randrange([start,]stop[,step]) Return a randomly selected element from range(start,
stop, step).
sample(seq,k) Return k length list of unique elements chosen from the sequence seq(从序列中取出k个不重复的值,用起来方便)
uniform(a,b) Return a random real number N such that a<=N<b
choice(seq) Return a random element from the NONE-empty sequence seq,if seq is empty,raises indexerror
seed([x]) 设置随机数发生器的种子值,默认以系统时间为种子,精度应该很高。
mark:python的random模块还提供了高斯分布,正太分布,beta分布等的随机数生成。
import random
random.random()
random.randint(0, 1)
random.choice('abcdefghij')
random.uniform(1, 3)
random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9], 5)
......

python,c++,C#随机数生成

先说python
python的random模块提供了多个伪随机数发生器,默认都是用当前时间戳为随机数种子。
下面是该模块几个最常用的函数
random() Return the next random floating point number in the range [0.0, 1.0). 
randint(a,b) Return a random integer N such that a <=
N <= b
randrange([start,]stop[,step]) Return a randomly selected element from range(start,
stop, step).
sample(seq,k) Return k length list of unique elements chosen from the sequence seq(从序列中取出k个不重复的值,用起来方便)
uniform(a,b) Return a random real number N such that a<=N<b
choice(seq) Return a random element from the NONE-empty sequence seq,if seq is empty,raises indexerror
seed([x]) 设置随机数发生器的种子值,默认以系统时间为种子,精度应该很高。
mark:python的random模块还提供了高斯分布,正太分布,beta分布等的随机数生成。
import random
random.random()
random.randint(0, 1)
random.choice('abcdefghij')
random.uniform(1, 3)
random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9], 5)
......

python,c++,C#随机数生成

先说python
python的random模块提供了多个伪随机数发生器,默认都是用当前时间戳为随机数种子。
下面是该模块几个最常用的函数
random() Return the next random floating point number in the range [0.0, 1.0). 
randint(a,b) Return a random integer N such that a <=
N <= b
randrange([start,]stop[,step]) Return a randomly selected element from range(start,
stop, step).
sample(seq,k) Return k length list of unique elements chosen from the sequence seq(从序列中取出k个不重复的值,用起来方便)
uniform(a,b) Return a random real number N such that a<=N<b
choice(seq) Return a random element from the NONE-empty sequence seq,if seq is empty,raises indexerror
seed([x]) 设置随机数发生器的种子值,默认以系统时间为种子,精度应该很高。
mark:python的random模块还提供了高斯分布,正太分布,beta分布等的随机数生成。
import random
random.random()
random.randint(0, 1)
random.choice('abcdefghij')
random.uniform(1, 3)
random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9], 5)
......

python,c++,C#随机数生成

先说python
python的random模块提供了多个伪随机数发生器,默认都是用当前时间戳为随机数种子。
下面是该模块几个最常用的函数
random() Return the next random floating point number in the range [0.0, 1.0). 
randint(a,b) Return a random integer N such that a <=
N <= b
randrange([start,]stop[,step]) Return a randomly selected element from range(start,
stop, step).
sample(seq,k) Return k length list of unique elements chosen from the sequence seq(从序列中取出k个不重复的值,用起来方便)
uniform(a,b) Return a random real number N such that a<=N<b
choice(seq) Return a random element from the NONE-empty sequence seq,if seq is empty,raises indexerror
seed([x]) 设置随机数发生器的种子值,默认以系统时间为种子,精度应该很高。
mark:python的random模块还提供了高斯分布,正太分布,beta分布等的随机数生成。
import random
random.random()
random.randint(0, 1)
random.choice('abcdefghij')
random.uniform(1, 3)
random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9], 5)
......
总记录数:969; 总页数:162; 每页6 条; 首页 上一页 [42] [43] [44] [45] 46 [47] [48] [49] [50] [51]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号