
C++
文章平均质量分 82
fatever
这个作者很懒,什么都没留下…
展开
-
链接器踩坑
在工作中遇到一次,项目更新一个sdk的后,发现另一个没有改动的sdk提供的功能无法生效了。仔细排查后,发现是因为升级后的sdk包含了与另一个已有sdk同名的库(大概率内部一些接口也是一致的),猜测这里出了问题。遂对链接器的一些实现产生了好奇,做了一个简单的实验,这里记录一下。对链接器的一些疑问从经验看,CMakeLists文件只是简单的使用target_link_libraries之类的接口添加一个project需要链接的库,却没有任何地方指明了更进一步的链接细节,比如某个class A需要到具体.原创 2020-12-09 09:46:44 · 508 阅读 · 0 评论 -
入职作业总结(3.1)D3D11初始化
文中提到的书,如无特殊标注,都指经典的directx编程指南:《Introduction to 3D Game Programming with Directx 11》D3D初始化主要根据以下步骤: Create the ID3D11Device and ID3D11DeviceContext interfaces using the D3D11CreateDevice func...原创 2018-04-27 00:56:26 · 764 阅读 · 0 评论 -
D3D疑问记录
1.Supersampling 和 Multisampling之间有什么差别?在龙书《Introduction to 3D Game Programming with Directx 11》的4.1.7小节有这么一段话: Observe the key difference between supersampling and multisampling. With supersampl...原创 2018-04-26 22:42:05 · 522 阅读 · 0 评论 -
入职作业总结(3.2)Rendering Pipeline
书上这么定义Rendering Pipeline: Given a geometric description of a 3D scene with a positioned and oriented virtual camera, the rendering pipeline refers to the entire sequence of steps necessary to gene...原创 2018-05-03 23:29:00 · 301 阅读 · 0 评论 -
入职作业总结(3.0)Windows程序开发
看DirectX书的的时候,发现示例代码给出的部分与以往的主函数int main(int argc, char **argv)不同,以为只是给了个函数,主函数得自己写。查阅了资料后发现是孤陋寡闻,原来windows应用程序的入口函数定义本来就比较特别。第一个windows程序代码以及参考链接:Your First Windows Program,这里只是对学习该代码进行的记录笔记。...原创 2018-03-18 20:36:02 · 309 阅读 · 0 评论 -
入职作业总结(2)I/O复用
参考文献:《Unix网络编程》一个输入操作通常包含两个阶段:等待数据准备好。从内核向进程复制数据。Unix下有5种可用的I/O模型:阻塞式I/O;非阻塞式I/O;I/O复用;信号驱动式I/O;异步I/O(POSIX的aio_系列函数);以下例子中,我们把recvfrom函数视为系统调用(以区分进程和内核)。不论它如何实现(在源自Berkeley的内核上是作为系...原创 2018-02-20 14:37:24 · 458 阅读 · 0 评论 -
allocator和容器实例构建过程
看到过几次,但一直对allocator的功能不甚了解。最近在看《Effective STL》的时候,看到里面提到了allocator以及示例代码,决定尝试去理解一下。allocator本质是:在每个新的对象实例被加入到容器中时,容器所作的准备工作。如果你以为新添加对象实例时,容器只需要在insert函数中确认一下空间并new一个对象,那就大错特错了。 以list为例,容器在新添加对象的时候,除了为原创 2018-01-08 21:40:48 · 341 阅读 · 0 评论 -
利用template和using构造别名
今天碰巧看到知乎一个问题:如何评价网易校招C++的笔试题?。发现自以为掌握了C++大部分实用基础语法的自己,还不知道template可以这么使用。通过查阅资料C++11 理解 (十五) 之 模板的别名, 模板的别名(1),发现自从C++11后,template配合using可以完全替代,甚至更好地完成typedef的工作。例如我可以这么定义某个类型的指针templatetypena原创 2018-01-05 22:43:48 · 4400 阅读 · 0 评论 -
C++内存管理
在阅读《STL源码剖析》的时候,突然发现一直以来认为的new只有用来在堆上构造对象的用途,但实际上在allocator分配内存的时候,也是利用new来实现的。换句话说,new/delete的本质是内存管理的一组操作。 在网上看到了侯捷先生的池內春秋—— Memory Pool 的設計哲學與無痛運用一文,让我对C++中内存管理有了较新的认识。C++ 平台提供的内存配置工具 配置 释放 归原创 2018-01-12 16:26:53 · 471 阅读 · 0 评论 -
笔试题摘选(选择题部分)
做笔试的时候经常感觉很多基本知识大概都知道,但真做起题来总有些细节不甚了解导致无法确定,所以这里收录一些我容易犯错的题,相当于高中的错题集吧(捂脸)原创 2017-09-03 13:07:18 · 385 阅读 · 0 评论 -
常用编程功能整理
有一些平时编程中经常遇到的,逻辑比较简单实际中也经常被需要的功能,在刚刚成为程序员阶段却因为不知道有什么合适的函数(一般是比较基本的,跟系统连接紧密的函数),成了阻碍进度的大山。所以想在平时做一些整理,等下次要用的时候可以很快回忆起来。按键跳出循环常用的设计一个菜单(即便是命令行下简单的菜单)然后根据指令跳出程序对任何初学者来说也都不难,但有时候,我们希望程序能循环的执行某项功能,只在我需要的时候跳原创 2017-08-03 10:06:40 · 712 阅读 · 0 评论 -
Copy Elision
最近写程序的时候突然意识到了一个(也许大多数人早就意识到的)很常见的问题。我们知道复制一个对象(尤其是复杂的对象/实例)往往需要不小的计算开销(更别提复制一个数组的对象了)。但另一方面,复杂对象(群)的建立往往需要单独写一个函数来处理。那么如何从函数中输出这些对象?原创 2017-08-17 16:14:54 · 1425 阅读 · 0 评论 -
内存泄漏
内存泄漏一直是编程中不易察觉但可能会造成严重后果的大问题。在c/c++这种没有垃圾回收的语言系统中尤其明显。最近编程中遇到了一些相关的问题,网上没有查到满意的结果,特此整理收集。PS:关于堆内存和栈内存的区别这里就不赘述了,网上有很多,理解起来也很容易。原创 2017-08-02 10:22:39 · 230 阅读 · 0 评论 -
数组指针和指针数组的区别
讨论指针数组和数组指针的区别,并从编译器角度理解这些声明定义原创 2017-06-09 15:41:19 · 325 阅读 · 0 评论 -
类模板的继承(转)
模板类的继承包括四种转载 2016-07-26 11:04:34 · 287 阅读 · 0 评论 -
C++笔记:左值和右值
这两个概念看似简单,其实大部分人很多时候都没有细分他们的差别。最近看到primer书里讨论rvalue reference(右值的引用)时觉得自己应该再回去看看。而事实上左值和右值本身也确实很简单。原创 2017-05-09 14:47:38 · 355 阅读 · 0 评论