当前位置: 首页 > news >正文

企业网站seo诊断工具网站 手机验证码 实例

企业网站seo诊断工具,网站 手机验证码 实例,网商之窗官网,二次开发包学了就忘#xff0c;忘了再学。有时感觉自己几乎就是一个跳梁小丑。没有办法#xff0c;只好多记些笔记。本文版权归作者和博客园共有FROM#xff1a; http://www.cnblogs.com/graphics/archive/2010/12/24/1916343.html经常看到如下代码#xff1a;#ifdef _cplusplusexter…学了就忘忘了再学。有时感觉自己几乎就是一个跳梁小丑。没有办法只好多记些笔记。本文版权归作者和博客园共有FROM http://www.cnblogs.com/graphics/archive/2010/12/24/1916343.html经常看到如下代码#ifdef _cplusplusextern C {#endif#include XXX.h#ifdef _cplusplus}#endif解释extern C的作用是告诉C编译器下面的代码按照C的方式进行编译说白了不要对这些函数进行名字重整function name mangling。通常在C程序中使用C函数或者模块时需要用到这个功能。原因C为了支持函数重载将编译后的函数名做了重整mangled name比如下面的函数int add(int a, int b) ;在C中编译完的名字就是add而在C中编译完就变成了add_int_int(举例而已实际因编译器而异)这样在函数名字后面加上参数的类型就可以区分不同的重载函数了比如还有另一个函数float add(float a, float b) ;在C中它会被编译成add_float_float这就是C区分重载函数的机制可是问题也随之而来C进行名字重整而C不进行重整。当C程序引用C的函数时它会按照重整后的名字去目标文件.obj中去寻找对应的函数而目标文件中存放的却是C版本的函数名字对不上所以根本找不到怎么办呢这就是extern “C” 存在的一个原因它告诉C包含在extern “C”{ //…}块中的东西是C版本的,你编译的时候不要进行名字重整否则你链接的时候就无法找到我于是上面的代码也就不难理解了光说不练是扯淡上代码我们简单的定义一个C头文件和实现文件只包含一个add函数CClass.h 内容如下#ifndef __CClass_H__#define __CClass_H__extern int add(int a, int b) ;#endif // end __CClass_H__CClass.c 内容如下#include CClass.hint add(int a, int b){return a b ;}下面我们用一个C程序来引用这个C文件main.cpp 内容如下#define _cplusplus // 为了测试强加一句#ifdef _cplusplusextern C {#endif#include CClass.h#ifdef _cplusplus}#endif#include iostreamusing namespace std ;int main(void){int result add(1, 2) ;cout result endl ;system(pause) ;return 0 ;}如果没有#include iostream之前那些代码而只是仅仅包含#include CClass.h一句你就会得到下面的错误error LNK2019:unresolved external symbol int __cdecl add(int,int) (?addYAHHHZ) referenced in function _main显然这是一个链接错误因为找不到对应的函数定义当然你也可以简写成下面的形式直接在extern “C”块中包含你想调用的函数extern C{int add(int a, int b) ;};#include iostreamusing namespace std ;int main(void){int result add(1, 2) ;cout result endl ;system(pause) ;return 0 ;}这在C程序中是没有问题的但是如果是在C程序中则会出现编译错误因为C中不允许extern “C”出现另一个需要extern “C”的场合是当C程序调用C的东西时按照如下步骤做即可1. 在C的.h文件中用extern “C”{}声明将被C程序使用的函数2. 在C的.cpp文件中实现上面的函数3. 在.c文件中用extern声明要使用的C函数4. 使用即可注意切不可在.c文件中包含C的.h文件那样编译无法通过上代码CPPClass.h中声明add函数#ifndef __CPPClass_H__#define __CPPClass_H__extern C{int add(int a, int b) ;};#endif // end __CPPClass_H__CPPClass.cpp实现add函数#include CPPClass.hint add(int a, int b){return a b ;}main.c 内容如下#include stdio.h//#include CPPClass.h // 不要包含头文件,否则编译不过extern int add(int a, int b) ; // 只需显示声明要调用的函数即可int main(void){int result add(1, 2) ; //使用函数printf(%d, result) ;return 0 ;}
http://www.pierceye.com/news/24558/

相关文章:

  • 东莞企业营销型网站网站设计制作教程
  • 全国美容网站建设软文外链代发
  • 做网站学套模板网站
  • 做网站的主要作用买个网页多少钱
  • 怎么拥有自己的网站免费个人网站搭建
  • 珠海网站空间注册哪个软件是网页编辑软件
  • 大田县建设资讯网站搭建交流平台
  • 网站建设什么服务器好惠阳做网站公司
  • wordpress 名站怎么看网站域名
  • 做网站的服务器cpu异常cms网站建设的实训总结
  • 如何做网站流量统计用商标域名注册的非盈利网站
  • 如何注册网站怎么注册百度推广如何获取精准的客户
  • 企业网站托管网站的流量有什么用
  • 网站建设智推网平面设计网站灵感
  • 西宁网站建设王道下拉惠网站的视频做gif
  • 论坛网站建设源码下载宁德市区哪里好玩
  • 西安网站建设培训学校怎样做才能发布你的网站
  • 响应式企业网站网站开发 前端如何学习
  • 福建省城乡和建设厅网站深圳建筑工务署官网
  • 企业做网站有用吗天涯分销软件有哪些
  • 晋州市建设局网站做网站用asp还是php
  • 如何备份网站wordpress在线点播
  • vs2012手机网站开发教程把给公司做的设计放到自己的网站上
  • 自闭症网站的建设意义seo分析报告怎么写
  • 建网站要几个域名创作平台登录入口
  • 做网站找客户申请免费域名空间
  • 布吉做网站的公司福州网站建设
  • 国内做的好的电商网站有哪些方面上海网站建设推广服务
  • 南宁网站建设哪家专业wordpress上传类型
  • 水利建设相关网站苏州网站建设书生