Tag: c18

链接步骤找不到符号(XC8编译器)

我正在尝试使用XC8编译器编译和链接C程序。 我改变了C18编译器并对代码进行了一些小的兼容性更改。 使用C18,编译和链接的代码就好了。 使用XC8,编译很顺利,但链接步骤失败并出现此错误: Error [500] ; 0. undefined symbols: _putch(server.obj) _ENC_Init(server.obj) _ENC_WriteRegister(server.obj) _ENC_ReadRegister(server.obj) 由于编译成功,我猜有原型,ergo .h文件包含好。 我猜编译器找不到.c文件。 函数putch 不是在我自己的程序中调用的,但它在putchar调用,我使用该函数。 以ENC_开头的函数是我自己的函数。 我在XC8工具套件的“包含搜索路径”中添加了两条路径: C:\Program Files (x86)\Microchip\xc8\v1.12\sources ,编译器的.c文件所在的位置,我相信 C:\…\lib ,我自己的.c文件所在的位置。 但是,我仍然得到错误。 我该如何解决这个问题? 这是完整的日志: Advisory[1233] Employing 18F4620 errata work-arounds: Advisory[1234] * Corrupted fast interrupt shadow registers Advisory[1234] * Data in RAM location can be corrupted if async. reset occurs […]

解析4个单字节的ip地址字符串

我在使用C编程的MCU上进行编程,我需要解析一个以空字符结尾的字符串,该字符串包含4个单字节的IP地址。 我用C ++做了一个例子: #include int main() { char *str = “192.168.0.1\0”; while (*str != ‘\0’) { if (*str == ‘.’) { *str++; std::cout << std::endl; } std::cout << *str; *str++; } std::cout << std::endl; return 0; } 此代码在新行中打印192,168,0和1每个字节。 现在我需要一个char中的每个字节,比如char byte1,byte2,byte3和byte4,其中byte1包含1,byte4包含192 …或者在结构IP_ADDR中然后返回该结构,但我不知道如何在C。 :(