快速參考:
常見的 CSS(v1) selector 設定套用的次序如下:
<style>
div { color: black ; ... } /* 1st level */
.nClass { color: green ; ... } /* +this 2nd level */
#nId { color: blue ; ... } /* +this 3rd level */
...
</style>
...
<div style="color: red; ... "><!-- /* +this 4th level */ -->
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
這篇是從別人的部落格剪來轉貼的, 花了一點時間校對及重新編排版面.
雖然原 PO 文有點舊了 (2000年), 現在 (2015年) 原 PO 文網址已經連不到了, 還有一部份參數已經不存在了, 但是當新手面對現今的 GCC 參數和選項動則數以百計, 還有厚厚一疊手冊時, 不失為一個不錯的快速入門.
註: 原 PO 文二篇, 本篇為第二篇
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
這篇是從別人的部落格剪來轉貼的, 花了一點時間校對及重新編排版面.
雖然原 PO 文有點舊了 (2000年), 現在 (2015年) 原 PO 文網址已經連不到了, 還有一部份參數已經不存在了, 但是當新手面對現今的 GCC 參數和選項動則數以百計, 還有厚厚一疊手冊時, 不失為一個不錯的快速入門.
註: 原 PO 文二篇, 本篇為第一篇
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
C 語言的變數有所謂的 storage class, 初學時對當中的差異並不是很容易弄清楚, 後來我把各種條件稍作整理, 於是有了下面的表格:
MagicJackTing 發表在 痞客邦 留言(2) 人氣()
下面範例中的 setStyleRule() 可以用來動態增加 stylesheet 中的項目(selector), applyClass() 則可以用來為物件刪除/附加新的 CSS Style Class (只能是 class).
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="ext_style.js"></script>
<script type="text/javascript">
function fnInit() {
setStyleRule("", "#id1", "color:blue;");
}
window.addEventListener('load', fnInit);
</script>
</head>
<body>
<h1 id="id1">My Heading 1</h1>
<button type="button"
onclick="document.getElementById('id1').style.color = 'red'">
Click Me!</button>
</body>
</html>
載入的 javascript "ext_style.js" 檔案內容如下:
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
前二天心裡有個念頭突然閃過, 於是用手機看了一下自己在部落格的 PO 文.
結果... 昏倒... 手機模式的 CSS Style 設定都沒有出現.
於是寫信給 客服, 客服的回信倒是蠻快的 :)
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
運算子優先權 (C 語言)
Percedence Table
MagicJackTing 發表在 痞客邦 留言(1) 人氣()
以往寫網頁都是把 CSS Style 在 <head></head> 區段中載入, 今天發現在 <body></body> 區段中載入也是可以的.
另外如果不是要載入 CSS 檔, 而是要把 CSS Style 插入在 <body></body> 區段中, 則需要用 <div></div> 區段把 <style></style> 區段包住.
<head>
...
</head>
<body>
...
<!-- 可以在 <body></body> 區段中另外再載入 CSS 檔 -->
<link rel="stylesheet" href="mystyle.css" />
...
<div>
<style type="text/css">
/* local style sheet 要放在 <div></div> 區段中 */
.alt0 { backbround-color:#FCFCFC; }
.alt1 { background-color:#E8E8E8; }
...
</style>
</div>
...
</body>
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
以前以為 typedef 的功能可以用 #define 來完成, 用起來感覺功能也差不多, 例如:
typedef unsigned char bool; // 用這一行或者是下一行 二選一
//#define bool unsigned char
bool flag1, flag2;
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
C 語言中 typedef 可以用來擴充 C 原有的資料型態. 通常我們會將某個資料型態或者將常用的資料型態組合給予一個比較直觀而易懂的別名. 定義別名之後我們就可以像使用原有的資料型態來宣告或定義變數一樣, 直接拿它來宣告或定義(註一, 註二)變數.
註一: 宣告和定義有所不同. 定義變數會實際佔據記憶體空間, 而宣告變數則只產生參考的連結, 稍後連結程式時再連結到在其他模組定義的變數. 我們一般把宣告變數擺放在 header file (.h 檔) 中, 有需要的模組或程式只要 include 即可. 而定義變數則視情況放在主程式或者相關的模組中, 當然它通常也會 include 該 header file.
註二: ANSI C 標準文件說: 會實際佔據記憶體空間的宣告稱為定義. 所以 ANSI C 說的宣告包含了定義及純宣告. 而註一及以下本文中所指的宣告則是指沒有佔據記憶體空間的純宣告, 而不是 ANSI C 原先所指的宣告, 特此說明. 請參考維基網站 Declaration (computer programming) 段落二 'Declaration vs. definition' 及段落三 'Declarations and Definitions')
MagicJackTing 發表在 痞客邦 留言(1) 人氣()
程式在移植或者整合時, 有時會遇到使用結構來的定義程式所用到的資料的情形, 有時原作者是用一指向結構的指標來處理, 但是有時也會有直接用結構變數的情形.
這些程式我們在使用的時候按理應該盡量不要更動以免日後改版時造成問題, 不過要是遇到下面二種狀況那就...
- 原始程式是用指標來指向要處理的結構變數, 而現在我們想把規模縮小, 只會有一份結構變數, 同時也希望最佳化目的碼, 讓系統小一點, 快一點.
- 或者原始程式中把結構變數寫死了, 所有的函數都是針對那一個結構變數寫的, 結構變數生不出第二個 instance 來. 而我們卻是需要擴充一下, 讓它能處理多個結構變數.
MagicJackTing 發表在 痞客邦 留言(0) 人氣()
外部資料結構
在寫 CPU 或介面晶片的驅動程式時, 經常會使用到某些固定位址, 如: ARM Cortex-M 把系統設定及狀態對應到記憶體的特定位址, 某些周邊 IC, 例如 PCI, USB... 也是使用一小段記憶體空間. (註: 常見的周邊 IC 暫存器定址有二種: 一種是只有二個位址空間, 一個是 '指令/地址暫存器', 一個是 '資料暫存器'; 另一種則是直接使用 CPU 的記憶體空間來對應)
軟體功力較佳的 SoC 晶片製造廠所提供的驅動程式, 通常會將這一小段記憶體空間以結構 (struct) 的方式定義好, 再使用 define 將特定的位址值 (常數), 定義成一虛擬變數. 當然如果晶片功能比較簡單就不見得是用這種方法.
MagicJackTing 發表在 痞客邦 留言(0) 人氣()