相关疑难解决方法(0)

如何检查两个格式字符串是否兼容?

例子:

"Something %d"        and "Something else %d"       // Compatible
"Something %d"        and "Something else %f"       // Not Compatible
"Something %d"        and "Something %d else %d"    // Not Compatible
"Something %d and %f" and "Something %2$f and %1$d" // Compatible
Run Code Online (Sandbox Code Playgroud)

我认为应该有一些C功能,但我没有得到任何相关的搜索结果.我的意思是编译器正在检查格式字符串和参数是否匹配,因此已经编写了用于检查它的代码.唯一的问题是我怎么称呼它.

我正在使用Objective-C,所以如果有一个Objective-C特定的解决方案也没关系.

c compatibility printf objective-c format-string

39
推荐指数
2
解决办法
872
查看次数

使用宏进行类型泛型编程:确定类型的技巧?

可以将某些类型的类型泛型函数作为C中的宏来执行,例如:

#define SQRT(x) (sizeof(x) == sizeof(float) ? sqrtf((x)) : \
                 sizeof(x) == sizeof(double) ? sqrt((x)) : \
                 sqrtl((x)) )
Run Code Online (Sandbox Code Playgroud)

只要x是浮点类型,这(大多数)就可以正常工作.

但是,如果我想要一个可以采用整数类型或指针类型的类型通用宏,它可能具有相同的大小.有没有一种聪明的方法来测试宏参数是整数还是指针?整数与浮点类型怎么样?

c generics macros c-preprocessor

8
推荐指数
1
解决办法
4561
查看次数