我在我的系统中安装了 frama-c。
它是做什么的,它将我的所有代码转换为具有 C.. 的所有隐式转换的更扩展的形式。
(例如)
//我的实际代码
if(opTab ==NULL || symTab ==NULL || intermediateFile==NULL || sourceCode ==NULL)
{
printf("\nError in opening file streams");
exit(EXIT_FAILURE);
}
//Frama-c转换后的代码
if (opTab == (void *)0) {
printf((char const *)"\nError in opening file streams");
exit(1);
}
else {
if (symTab == (void *)0) {
printf((char const *)"\nError in opening file streams");
exit(1);
}
else {
if (intermediateFile == (void *)0) {
printf((char const *)"\nError in opening file streams");
exit(1);
}
else {
if (sourceCode == (void *)0) {
printf((char const *)"\nError in opening file streams");
exit(1);
}
}
}
}
现在我的疑问是, 在创建对象程序之前, C 编译器是否会进行所有隐式转换?
或者
在创建目标程序期间,这些隐式转换是否并行完成?
或者
它依赖于实现吗?如果是这样,为什么?