这是一个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