linux C 中声明并初始化一个变量const char a[512]="test";后,接着调用了一个静态库中的函数函数test(b);,a并没有传入test函数,但在调用这个函数后a的值就改变了,变成了类似于??@????的乱码. 原来是因为静态库头文件包含错误:静态库也是自己写的,在使用时包含的头文件过期了,与当前版的静态库不匹配,使用与静态库匹配的头文件即可.
代码摘录自YYKit:https://github.com/ibireme/YYKit /** Add this macro before each category implementation, so we don't have to use -all_load or -force_load to load object files from static libraries that only contain categories and no classes. More info: ht