iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
1
自我挑戰組

學習30天的c++系列 第 18

DAY18 學習30天的c++

  • 分享至 

  • xImage
  •  

宣告符號#define

  • #define:指令提早期的C語言宣告常數方法,C++語言提供const宣告常數符號,但有許多程式使用#define指令
  • 對等符號:命名方式與變數名稱相同。但大多數喜歡用大寫來區分該符號使用#defin宣告符號
  • 對等資料:在程式編譯前,對等資料取代程式中所有對等符號
  • C++前置處理器(preproccessor):在編譯前會先掃描程式 ,因此前置處理指令(preproccessor directives)優先處理,例:#include會先插入指定標題檔,#define則先置換程式中相同的符號
  • 使用const與#define宣告常數符號相同的,可是C++編譯處理const與#define過程不同
  • #define是前置處理器指令,所以不使用分號結束
    以下在編譯前,前置處理器以3.14159取代程式中所有符號PI,然後才編譯。
#define PI 3.14159
int main(int argc,char** argv)
{
  float circumference, radius = 5;
  circumference = 2 * PI * radius;               //2 * 3.14159 * radius
  return 0;                                      //傳回成功結束碼給系統
}

在下一個程式第12行和17行的pow(radius, 2)是計算radius的平方值,pow函數的傳回型態double,而float((pow(radius, 2))則將double型態的值轉換為float型態並存入area中。,跟上一篇一樣。

#include <iostream>
#include <cmath>
using namespace std;

const float PI = 3.14159f;              //宣告浮點數常數符號PI 

int main(int argc, char** argv)
{
	float area, circu;                  //宣告浮點數area ,circu
	float radius = 5;                   //宣告浮點數radius=5
	
	area = PI * float(pow(radius,2));  //area=圓的面積為1 
	circu = 2 * PI * radius;           //circu=圓的周長為1 
	cout << "圓的面積1 = " << area         
	      <<"\t 圓的周長1 = "<< circu;
    radius = 10;                         //改變 radius=10 
	area = PI * float(pow(radius, 2));   //area=圓的面積為1  
	circu = 2 * PI * radius;              //circu=圓的周長為1  
	cout << "\n圓的面積 2 = " << area
	      <<"\t圓的周長 2 = " << circu << endl;
	system("PAUSE");
	return 0;	   
}

上一篇
DAY17 學習30天的c++
下一篇
DAY19 學習30天的c++
系列文
學習30天的c++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言