2020年5月22日 星期五

2020年5月17日 星期日

[C] 關鍵字Key word

__attribute__((unused))
消除編譯器對未使用變數的告警

eq.  char test __attribute__((unused));

----

printf("%d %s\n", __LINE__, __func__);
印出當前行號及函式名稱

2020年4月26日 星期日

[C] Error Code

不同的編譯器可能會產生不一樣說明的error code,但都大同小異.
善用Ctrl + F 收尋


2020年4月6日 星期一

[C] 基礎

C只有Call by value

Object: 有占空間的就教物件,所以物件會有明確大小 (eq. int a)

*(int32_t *)(0x11aa) = 0x01;  //location value:*(int32_t *)(0x11aa) , assignment: =

2020年4月5日 星期日

[C] #ifdef #ifndef #elif #else #endif #if defined

1.#ifdef
a.只有一個條件
#ifdef 識別字
   /*若識別字被定義,編譯器會編譯此部分程式*/
#else
   /*否則編譯此部分程式*/
#endif
或
#if defined(CONDITION_1)
   /*若識別字被定義,編譯器會編譯此部分程式*/
#elif
   /*否則編譯此部分程式*/
#endif
/*Example*/
#define CONDITION_1
#ifdef CONDITION_1
   /*編譯此部分程式*/
#else
   /*不編譯此部分程式*/
#endif

2020年3月22日 星期日

[BT/BLE] Beacon/Advertising 藍芽廣播介紹

BLE(Bluetooth Low Energy)的廣播模式,也稱Advertising,少許人稱broadcast.

Google稱為Eddystone, Apple稱為Beacon.
雖然名字不同,但他們都是類似的東西,都是按照BLE的Advertising 格式所構成的.

需要文件載點:
Core Specification and Core Specification Supplement
Eddystone Protocol Specification
iBeacon




2020年3月18日 星期三

[C] 指標

&:取址(reference operator), address of ... (eq.&a:address of a)
*:取值(dereference operator),value of ... (eq.*b:value of b)


各種用法解說:
char *ptr;  //char表示point指向變數的類型,唸做:ptr is a pointer to char

char p[5]; // p is a 5-element array of char
char *p[5]; // p is a 5-element array of pointer to char 
char (*p)[5]; // p is a pointer to a 5-element array of char

另一種解釋
int *ptr[10];
This is an array of 10 int* pointers

int (*ptr)[10];
This is a pointer to an array of 10 int


typedef void (*func)(char);
func是個指標,指向某個函式,而這個涵式有一個資料型態為char的引述,回傳值為void


示意圖: