我已阅读on Wikipedia Cyclone编程语言是C编程语言的安全方言,因此请考虑以下C代码。
int strlen(const char *s)
{
int iter = 0;
if (s == NULL) return 0;
while (s[iter] != '\0') {
iter++;
}
return iter;
}
此函数假定传入的字符串由NUL('\ 0')终止。 但是如果我们传递这样的字符串,
char buf[] = {'h','e','l','l','o','!'}
它会导致strlen
遍历不一定与字符串s相关联的内存。所以Cyclone
int strlen(const char ? s)
{
int iter, n = s.size;
if (s == NULL) return 0;
for (iter = 0; iter < n; iter++, s++) {
if (*s == '\0') return iter;
}
return n;
}
我可以在Visual Studio中使用Cyclone,还是必须下载新的编译器?
答案 0 :(得分:3)
您需要Cyclone。它也是编译器的名称。 Cyclone编译器的源代码为here。根据文档,Cyclone编译器只能用GCC编译。检查this以编译Cyclone编译器。
如果为* .cyc文件提供custom rules,则可以在Visual Studio中使用它。这样您就可以将IDE用作更好的文本编辑器。对于语法高亮和样式,将* .cyc分配给C语言扩展列表。
答案 1 :(得分:2)
您可以为具有特定文件扩展名的文件运行自定义工具。有关如何设置自定义生成规则is here的MSDN Library文章。请注意,这在VS2010中已经非常破碎了。