C++ 的 &
C++ 的 & 比起 C 語言的提取位置,還多了宣告引用 ( 必須在定義時候就進行初始化 )。
int a = 5;
int &b = a;
std::cout << "a value\t\t" << a << "\n";
std::cout << "a address\t" << &a << "\n";
std::cout << "b value\t\t" << b <<...
2020年5月24日 星期日
C/C++ - 左值、右值 ( lvalue、rvalue )
lvalue、rvalue 基本概念
左值 (lvalue) : 一個佔據某個特定記憶體的值。
右值 (rvalue) : 一個 expression 結束後就消失的值。
基本上這兩個定義包含了全部的值,非左即右,非右即左。
int var = 4; // var 參數佔據記憶體 = lvalue
4 = var; // 4 不佔據記憶體 = rvalue
(var + 1) = 4; // var + 1 也不佔據記憶體 = rvalue
以上 2 跟 3 行會報錯,lvalue required as left operand...
2020年5月23日 星期六
C/C++ - Const
const 基本用途
告知編譯器這個值為「常數」無法被修改。
一般作用 const int index = 5;
index = 8; // error: assignment of read-only variable 'index'
作用於 * // const pointer
char * const constptr = initptr;
*constptr = 1; // 改變其 value OK
constptr = otherptr; // 改變其 addr...
C/C++ - Function Pointer 應用 CallBack Function
Function Pointer 應用 CallBack Function
有了 Function Pointer 就意味著,Callback Function 能被實現。
Callback Function :
A 跟 B 講 "看到 C 就打電話給我"
打電話給 A = Callback Function
main.cpp ( A )
int
main () {
// 從 0 數到 10000000,中間請回報進度 % 數
zeroTo(1000000,...
2020年5月12日 星期二
心情日記 2019/05/12
好久沒寫日記,整理 tag 才發現我有寫這種東西。根據勒布朗克法則:待會兒等於永不。即使現在是上班時間我也照寫 ( 其實只是讀 spec 讀到煩躁,想呼吸新鮮空氣 )。寫 blog 現在對我的生活來說是提神良品,非常適合我這種六日只想待在家的廢才。即使一開始有一篇沒一篇地寫,如此懶散的頻率,文章數還是來到了三位數。看著已發表的文章,深深理解 1 > 0 的理論,不是指冠軍戒指,而是 " 累積 "。我是一個沒啥雄心壯志的人,也沒有一個夢想讓我想灌注一身的努力去實現,除了財富自由。但我想我開始能接受這樣的自己,沒有夢想的工程師,很廢但依然能享受...
2020年5月10日 星期日
C 語言 - CLI ( Command Line Interface ) 設計 (1)
CLI 命令列介面
在設計 CLI 的程式時,最好的方法是遵從 IEEE Std 1003 ( POSIX ) 對 program 的 command-line options 之規範。所以用 getopt 去做 parse command-line 是最簡單的,有一點要注意的是 GNU 提供的 getopt 支援 " -- ",這個 POSIX 沒有規範。
常見的 Usage 設計
Usage :
my_program tcp <host> <port>...
2020年5月3日 星期日
Makefile 筆記 (1)
Makefile 範本 (OS: Windows)
教學網路上很多,這裡記錄下我目前測試程式碼的 Makefile
# 通用編譯參數
CC = gcc
CFLAGS = -g -Wall
# Objects = 為要與 main 連結的 .o 檔
OBJECTS = hello.o pointer.o unsignedChar.o struct.o
SOURCE_PATH = source/
INCLUDE_PATH = include/
program: main.o ${OBJECTS}
...
C 語言 - warning: left shift count >= width of type
warning: left shift count >= width of type
一般來說,就是 shift 的 bit 大於資料型態的 bit 數。但有時使用 unsigned long 仍然會出錯,因為 unsigned long 會依照系統的不同,有時是 32 bit 有時是 64 bit,所以這時用 unsigned long long 較為安全 ( 保證 64 bit )。
參考資料 :
https://stackoverflow.com/questions/4201301/warning-lef...
C 語言 - struct array 初始化 ( Initializing array of structures )
初始化 struct array
struct student
{
char* name;
int grade;
int id;
};
1. 依照當初宣告的順序
struct student myStudents[] = {
{"Henry", 3, 1},
{"Marry", 3, 2}
};
1. 依照當初宣告的名子
struct student myStudents[] = {
{.id = 1, .grade = 3, .name = "Henry"},
...
Popular Posts
-
lvalue 、rvalue 基本概念 左值 (lvalue) : 一個佔據某個特定記憶體的值。 右值 (rvalue) : 一個 expression 結束後就消失的值。 基本上這兩個定義包含了全部的值,非左即右,非右即左。 int var = 4; // v...
-
You try to hold me down so I became a soldier 你想要控制所以我成為了戰士 Built up all theses walls and now I'm climbing over 監牢般的城牆如今我已越過 Thos...
-
Ooh, don't we look good together? 我們看起來是不是很棒? There's a reason why they watch all night long 這就是為何他們整晚都看著我們的原因 Yeah, kn...
-
Job Company : Houzz Job : Back-End Software Engineer Source : Recruiter on LinkedIn Result : 止步二面 Summary 1. 英文程度不佳 :...
-
Don't lie, I know you've been thinking it 別說謊了,我知道你一直很渴望 And two times, you let it slip from your lips 兩次了,你那不想讓人聽見的低語 You...
-
報告在製作時,一定會遇到要字串轉數字 在 BCB 裡有方便的函式 常見的有 String str = "123" int x = StrToInt(str); float y = StrToFloat(str); 但有時候...
-
BCB 選擇路徑(資料夾) 工作關係要將各式各樣的資料彙整並輸出 各式各樣的資料都放在同一目錄下 所以在設計程式就必須設計可以給使用者選擇目錄 但BCB10似乎沒有這種元件 (其實有 DirectoryListBox 但我駕馭不了) 於是Google發現大家用的...
-
BCB TDateTime 時間操作及應用 在 BCB 裡有關時間的操作幾乎都是與 TDateTime 這個 Class 相關 若找不到相關資料可以用 BCB 的 HELP ( 游標移到要查詢的函式或Class 並按 F1 ) 介紹幾個個人有在用的函式 TDate...
-
Python Google API - Python 學習筆記 Google API - Python 學習筆記 - Upload post
-
warning: left shift count >= width of type 一般來說,就是 shift 的 bit 大於資料型態的 bit 數。但有時使用 unsigned long 仍然會出錯,因為 unsigned long 會依照系統的不同,有...