我有一个非常大的代码,我错误地使用unsigned
代替uint64_t
。由于这个错误,我的代码不适用于大于4字节的大值。现在我想重新说明这个错误......但我不可能进入每个文件(有540个文件)并用unsigned
替换uint64_t
。是否有一些linux命令或一些自动方法可以为我做。
我只想用 unsigned
替换 uint64_t
一词。我不希望 unsignedFunction
等词语被 uint64_t
取代。
修改 当我将其替换为以下形式的函数时:
static inline unsigned readUint32Aligned(const unsigned char* data) { return toHost(*reinterpret_cast<const unsigned*>(data)); }
转换后的函数是:
static inline uint64_t readUint32Aligned(const uint64_t char* data) { return toHost(*reinterpret_cast<const uint32_t*>(data)); }
它给了我错误:
错误:未在此范围内声明“数据”
除了uint64_t
我可以做些什么来代替,这可能适用于上述形式的功能吗?
对不起,这可能不是一个错字。
答案 0 :(得分:2)
使用sed
和模式s/\bunsigned\b/uint64_t/g
。
\b
是有趣的一点。在常规表达式中,它匹配单词边界。