原创 c++系列文章(1):signed和unsigned

博客鏈接   帶符號類型(signed)可以表示正數、負數或0,無符號類型(unsigned)僅能表示大於等於0的值。C++標準並沒有規定signed類型應該如何表示,但約定了在表示範圍內正值和負值的量應該平衡。在計算機內部,si

原创 DirectX教程(6):初始化Direct3D

  在上一節,我們已經研究了關於Direct3D的基本概念,現在讓我們開始構建一個簡單的Direct3D程序,以便深入探討實際問題。在這個程序中,我們只是初始化Direct3D,然後將其關閉。雖然內容不多,甚至連一個“hello

原创 c++系列文章(2):分離式編譯——變量的聲明和定義

博客鏈接   C++語言支持分離式編譯,該機制允許將程序分割成若干個文件,每個文件可被獨立編譯。如果將程序分爲多個文件,則需要在文件之間共享代碼,例如一個文件中的代碼可能需要使用另一個文件中定義的變量,如cin和cout在標準庫中

原创 DirectX教程(1):基本Windows入門

Win32控制檯程序 vs. Windows程序   下面是一個簡單的Win32程序,main函數是程序的起點,Windows能夠向程序輸入任何你認爲必要的參數。 #include <stdio.h> // include

原创 DirectX教程(4):實時消息循環

  在本節中,我們將介紹PeekMessage()函數,以及該函數與GetMessage()函數的區別。實際上,GetMessage()函數並沒有什麼區別,只是它的工作方式在遊戲和持續活動中並沒有取得驚人的成績。我們將討論這是什麼

原创 DirectX教程(7):渲染框架

  Direct3D初始化後,就該開始進行一些實際的渲染。渲染本身非常容易,但涉及到一些準備工作。在本課程中,我們將一遍又一遍的設置所有內容以渲染一個空白幀。涉及到的設置非常簡單,主要有兩件事要做:首先,我們需要告訴GPU在內存中

原创 DirectX教程(2):創建一個窗口

  與消息框不同,沒有可以調用的單個函數用來創建窗口。這裏有兩個原因:一、創建窗口創建需要太多的數據;二、窗口是基於事件的,而事件需要其他代碼來處理。當事件發生時,Windows便發送一個消息到我們的程序,然後由WindProc(

原创 c++系列文章(4):const限定符

博客鏈接 初始化   const對象一旦創建後其值就不能再改變,所以const對象必須初始化,且初始值可以是任意複雜的表達式。 const int i = getsize(); //運行時初始化 const int j = 1;

原创 TCP/IP系列文章(1):概述

分層   圖1.6展示了鏈路層自底向上如何進行分解,這裏使用以太網作爲例子:以太網幀包含一個48位的目的地址(又稱MAC地址)和一個16位的以太網類型字段。0x0800表示這個幀包含IPv4數據報、0x0806表示ARP、

原创 c++系列文章(5):constexpr和常量表達式

博客鏈接   常量表達式是指值不會改變並且在編譯階段就能得到計算結果的表達式,顯然字面值屬常量表達式,用常量表達式初始化的const對象也是常量表達式。   一個對象(或表達式)是不是常量表達式由它的數據類型和初始值共同決定。 /

原创 DirectX教程(9):繪製三角形

  在本節中,我們將學習在屏幕上繪製三角形。我們將通過創建一系列頂點並讓硬件在屏幕上繪製這些頂點來構建這個三角形。這需要很多代碼。渲染三角形需要執行許多操作,本節很長,將分爲以下幾部分:1、首先,我們告訴GPU如何渲染我們的幾何;

原创 DirectX教程(8):全屏顯示

  使遊戲全屏顯示很容易,但是需要更改程序的一些細節,並添加幾行代碼。在本節中,我們將介紹兩件事:首先,我們將介紹如何全球化你的屏幕分辨率以及爲什麼要這樣做;其次,我們將介紹如何使窗口進行全屏模式並再次返回的機制。 設置屏幕尺寸

原创 c++系列文章(10):C風格字符串

  儘管C++支持C風格字符串,但是C++程序中最好還是不要使用它們,因爲C風格字符串不僅使用不方便,而且極易引發程序漏洞,是諸多安全問題的根本原因。   字符串字面值是一種通用結構的實例,這種結構就是C風格字符串。C風格字符串不

原创 後臺開發工程師技術能力體系之編程語言8——拷貝控制

拷貝控制   一個類通過定義五種特殊的成員函數來控制對象拷貝、移動、賦值和銷燬等操作:拷貝構造函數、拷貝賦值運算符、移動構造函數、移動賦值運算符和析構函數。如果一個類沒有定義所有這些拷貝控制成員,編譯器會自動爲它定義缺失的操作。因

原创 後臺開發工程師技術能力體系之編程語言1——語法

語法 1. 函數 函數定義:   函數是一個命名了的代碼塊,我們通過調用函數執行相應的代碼。函數可以有0個或多個參數,通常會產生一個結果。可以重載函數,也就是說,同一個名字可以對應幾個不同的函數。   函數的調用需要完成兩項工作: