這是一個C語言問題。什麼是*是指在C
是否意味着*乘或東西在以下功能別的嗎?我問的原因是因爲函數定義註釋說它期望三個參數。 #defines
中的()
[括號]是否表示不同於沒有括號的東西?見下文。
函數調用:
nvm_eeprom_write_byte(TEST_ERASE_PAGE * EEPROM_PAGE_SIZE, 42);
的定義:
#define TEST_ERASE_PAGE 2
#define EEPROM_PAGE_SIZE 32
評論對函數定義:
- PARAM page_addr EEPROM頁地址,0和EEPROM_SIZE之間/ EEPROM_PAGE_SIZE。
- PARAM byte_addr EEPROM字節地址,0和EEPROM_PAGE_SIZE之間。
- PARAM 值字節值寫入EEPROM中。
函數定義:
void nvm_eeprom_write_byte(eeprom_addr_t address, uint8_t value) {}
eeprom_addr_t
是一個typedef:
typedef uint16_t eeprom_addr_t
#define EEPROM_START (0x0000)
#define EEPROM_SIZE (2048)
#define EEPROM_PAGE_SIZE (32)
#define EEPROM_END (EEPROM_START + EEPROM_SIZE - 1)
之間的差異爲什麼函數期待三個參數?我試着去了解別人的工作,而不是寫我自己的代碼。 – milan 2011-04-02 00:10:30
@milan:看起來像兩個參數:'地址'和'值'。它們中的每一個都使用自定義typedef鍵入。 – 2011-04-02 00:11:56
我猜這個函數上面的註釋是不正確的呢? – milan 2011-04-02 00:14:13