你如何使用用户关键字"list"?
How do you use the user keyword "list"?
对于我正在进行的一项实际工作,我必须为某些功能使用 "preset" 结构。其中之一如下:
int initEmployees(Employee* list, int len)
{
//From here is my code
int isError = -1;
if ( len > 0)
{
len--;
for (int i = 0 ; i < len ; i++)
{
//This line is the problem, I know is not right but not sure how to fix it
list[i].isEmpty = 1;
/*My other guesses where:
*(list + i).isEmpty = 1;
(*Employee + i).isEmpty = 1;
but im quiet sure they won't work either*/
}
isError=0;
}
return isError;
}
尝试谷歌搜索:"Is codeblocks user keyword releted to STL!" 并浏览了一本 1991 年的 C 语言书籍(西班牙文编辑),检查它是否继续引用任何包含它的库,但没有。
list
不是 C 中的关键字。
首先,list
在此上下文中是一个变量名,而不是关键字。
如果 Employee
结构实际上 具有 一个 isEmpty
成员,您可以将其分配给 1
到.
它只是遍历一个提供的数组(称为list
),依次将每个元素设置为空。
但是,您对 len
的操作似乎有点不对劲,我怀疑它不会修改列表中的最后一个元素,因为您在 运行 循环之前递减了它。
我怀疑更规范的版本(包括那个修复)应该是这样的:
int initEmployees(Employee* list, int len) {
// Error if no elements in list.
if (len < 1) return -1;
// Mark each entry as empty.
for (int i = 0 ; i < len ; i++) {
list[i].isEmpty = 1;
}
// Everything is okay.
return 0;
}
但我也会质疑在列表大小为零时引发错误。在我看来,修改一个空列表的所有元素是完全可以的——这只是什么也不做。
而且,如果您对事物的大小使用无符号值(例如,size_t
),您的 "negative" 问题就会消失。
对于我正在进行的一项实际工作,我必须为某些功能使用 "preset" 结构。其中之一如下:
int initEmployees(Employee* list, int len)
{
//From here is my code
int isError = -1;
if ( len > 0)
{
len--;
for (int i = 0 ; i < len ; i++)
{
//This line is the problem, I know is not right but not sure how to fix it
list[i].isEmpty = 1;
/*My other guesses where:
*(list + i).isEmpty = 1;
(*Employee + i).isEmpty = 1;
but im quiet sure they won't work either*/
}
isError=0;
}
return isError;
}
尝试谷歌搜索:"Is codeblocks user keyword releted to STL!" 并浏览了一本 1991 年的 C 语言书籍(西班牙文编辑),检查它是否继续引用任何包含它的库,但没有。
list
不是 C 中的关键字。
首先,list
在此上下文中是一个变量名,而不是关键字。
如果 Employee
结构实际上 具有 一个 isEmpty
成员,您可以将其分配给 1
到.
它只是遍历一个提供的数组(称为list
),依次将每个元素设置为空。
但是,您对 len
的操作似乎有点不对劲,我怀疑它不会修改列表中的最后一个元素,因为您在 运行 循环之前递减了它。
我怀疑更规范的版本(包括那个修复)应该是这样的:
int initEmployees(Employee* list, int len) {
// Error if no elements in list.
if (len < 1) return -1;
// Mark each entry as empty.
for (int i = 0 ; i < len ; i++) {
list[i].isEmpty = 1;
}
// Everything is okay.
return 0;
}
但我也会质疑在列表大小为零时引发错误。在我看来,修改一个空列表的所有元素是完全可以的——这只是什么也不做。
而且,如果您对事物的大小使用无符号值(例如,size_t
),您的 "negative" 问题就会消失。