美文网首页
C/C++常见问题记录

C/C++常见问题记录

作者: 天叔 | 来源:发表于2020-04-17 10:44 被阅读0次

C/C++ 语法

extern “C”的作用详解
.hpp与.h区别
JNI详解---从不懂到理解

android jni/cmake

Android NDK 开发之 CMake 必知必会
Android Studio NDK CMake 指定so输出路径以及生成多个so的案例与总结
cmake手册

.h .hpp的理解

.h是通用的c/c++头文件,是一种兼容的写法,但是要手动区分是C工程还是C++工程
for example .h :

#ifndef MY_HEADER_H
#define MY_HEADER_H

   #ifdef __cplusplus
      extern "C"
      {
   #endif

   void myCFunction() ;

   #ifdef __cplusplus
      } // extern "C"
   #endif

#endif // MY_HEADER_H

.hpp

#ifndef MY_HEADER_HPP
#define MY_HEADER_HPP

extern "C"
{
#include "my_header.h"
}

#endif // MY_HEADER_HPP

and,把.h拆出来了

#ifndef MY_HEADER_H
#define MY_HEADER_H

void myCFunction() ;

#endif // MY_HEADER_H

这样,.h单独拿出来,.hpp里可以针对c++场景对C的实现做兼容,代码更清爽了。没有if else的判断。
参考:
https://stackoverflow.com/questions/152555/h-or-hpp-for-your-class-definitions

补充一点:extern是c++兼容c的产物,c++有重载实现,方法签名包含传参类型和个数,C语言是没有重载的概念的。

virtual 虚函数的理解

virtual是c++实现多态的机制
B继承A,假如B有方法fun(),A重写了fun(),
B b = new B;
A a = b;
A.fun();
调用的是A的fun方法,这点和java不同,但是fun()方法前加了virtual,则A.fun()调用的是B.fun()

相关文章

  • 面试常见问题 - 目录

    面试常见问题01 - C++相关(施工ing) 面试常见问题02 - 算法与数据结构(施工ing) 面试常见问题0...

  • C++基础面试

    面试中的C++常见问题 1.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”? 答:首...

  • C/C++常见问题记录

    C/C++ 语法 extern “C”的作用详解[https://www.cnblogs.com/xiangtin...

  • C++面试常见问题整理汇总

    这篇文章汇总了C++基本语法、面向对象各种概念与易错点,总结讲述了C++面试常见问题。分享给大家供大家参考,具体如...

  • C++ 总结 (一、基础篇)

    C++ 总结 (一、基础篇) 官网 C++ 完全兼容C语言,但是有自己的语法特点,本文总结了C++的基础知识。记录...

  • simpleperf源码阅读-1.C++

    SimplePerf C++ 承接上文,本文主要记录simpleperf C++部分的代码的阅读笔记。 Main ...

  • FFmpeg视频播放

    首先记录一下C++中的NULL、0、nullptr的区别 NULL在C++中就是0,这是因为在C++中void* ...

  • go语言陷阱之十一:数组作为函数参数

    这是C/C++里面的常见问题了,数组作为函数参数时是传值还是传引用, 代码example: 本意是想更新数组x,但...

  • C++ 常见问题

    1. 什么是多态 ?其有哪些实现方式,不同实现方式有河区别 ? 多态是:不同类的对象收到相同的消息时,得到不同的结...

  • C++常见问题

    作者:守望者1028 链接:https://www.nowcoder.com/discuss/55353?type...

网友评论

      本文标题:C/C++常见问题记录

      本文链接:https://www.haomeiwen.com/subject/svcevhtx.html