{0xAC39,0xAC53}, {0xAC55,0xAC6F}, }; unsigned short i ,j; i = LVC [2] .lo; j = LVC [2] .hi; } 我正在使用Microsoft Visual C ++ Express Edition (我也想摆脱#include" stdafx.h" if 有一些编译器配置允许我这样做。$ 解决方案 Susan Riceaécrit: //这个没有工作。编译器控制 static const struct LVC [4] = { static const struct LVC是类型。你必须给该数组一个* name * 。 例如 static const struct LVC MyTable [4] = { 等 然后你使用这个名字: i = MyTable [2] .lo; j = MyTable [2] .hi; jacob PS 它不是无效的()但是int main(void)。 但这是一个细节。 --- http://www.cs.virginia.edu/~lcc-win32 Windows的免费C编译器 Susan Rice写道: 我想创建一个只读的数据数组,然后是 结构的只读数组。这是我访问的数据,但我希望它能够防止意外更改 。以下是我的测试代码。 #include" stdafx.h" 见下文。 struct LVC 大多数人都倾向于为宏保留所有上限。 { unsigned short int lo; unsigned short int hi; }; void main() 这应该是int main(无效) { //这似乎有效 static const unsigned short int LV [4] = {0xAC00, 0xAC1C, 0xAC38, 0xAC54}; //这样做没事。编译器控制 static const struct LVC [4] = { LVC是您在上面创建的struct类型的名称。你想要什么 是这样的: static const struct LVC LVC_array [4] = { {0xAC01,0xAC1B}, {0xAC1D,0xAC37}, {0xAC39,0xAC53}, {0xAC55,0xAC6F} , }; unsigned short i,j; i = LVC [2] .lo; j = LVC [2] .hi; 然后更改这两个名字。 } 我正在使用Microsoft Visual C ++ Express Edition (我也想摆脱#include" stdafx.h"如果 有一些编译器配置允许我 这样做。) 这与预编译的头文件有关VC ++。我不知道 专门用来纠正Express,但检查你的项目 设置以消除任何依赖。如果你无法弄明白,那么你需要一个微软新闻组。 Brian 我正在使用Microsoft Visual C ++ Express Edition (我'我也想摆脱那个#include" stdafx.h"如果 那里有一些编译器配置允许我 这样做。) 当你用msvc ++创建项目时 新项目 - > Win32(win32控制台应用模板自动 选中) - > (输入项目名称) - > next->选择空项目 选项 - >完成 然后添加你需要的标题和源文件。 更简单...... new project-> selectgeneral项目类型窗口中的选项 - >完成 //这样做没事。编译器投诉 static const struct LVC [4] = { {0xAC01,0xAC1B}, 你没有将模板命名为..已经回答上面 问候 I want to create a readonly array of data, then a readonly array of astructure. This is data I access but I want it protected againstaccidental change. The following is my test code. #include "stdafx.h" struct LVC{unsigned short int lo;unsigned short int hi;}; void main(){//This seems to workstatic const unsigned short int LV[4] ={0xAC00,0xAC1C,0xAC38,0xAC54 }; //THIS DOESN''T WORK. COMPILER COMPLAINSstatic const struct LVC[4] = {{ 0xAC01, 0xAC1B },{ 0xAC1D, 0xAC37 },{ 0xAC39, 0xAC53 },{ 0xAC55, 0xAC6F },}; unsigned short i,j; i = LVC[2].lo;j = LVC[2].hi;} I''m using Microsoft Visual C++ Express Edition(I''d also like to get rid of that #include "stdafx.h" ifthere''s some compiler configuration that will allow meto do that.) 解决方案 Susan Rice a écrit : //THIS DOESN''T WORK. COMPILER COMPLAINS static const struct LVC[4] = {static const struct LVC is the type. You have to give a *name*to that array. for instancestatic const struct LVC MyTable[4] = {etc Then you use THAT name:i = MyTable[2].lo;j = MyTable[2].hi; jacob P.S.it is not void main() but int main(void).But that is a detail. --- http://www.cs.virginia.edu/~lcc-win32A free C compiler for windowsSusan Rice wrote: I want to create a readonly array of data, then a readonly array of astructure. This is data I access but I want it protected againstaccidental change. The following is my test code.#include "stdafx.h"See below about this. struct LVCIt''s generally prefered by most to reserve all caps for macros. { unsigned short int lo; unsigned short int hi;};void main()This should be int main(void) { //This seems to work static const unsigned short int LV[4] = {0xAC00, 0xAC1C, 0xAC38, 0xAC54 }; //THIS DOESN''T WORK. COMPILER COMPLAINS static const struct LVC[4] = {LVC is the name of struct type that you created above. What you wantedwas something like: static const struct LVC LVC_array[4] = { { 0xAC01, 0xAC1B }, { 0xAC1D, 0xAC37 }, { 0xAC39, 0xAC53 }, { 0xAC55, 0xAC6F }, }; unsigned short i,j; i = LVC[2].lo; j = LVC[2].hi;Then change these two names as well. }I''m using Microsoft Visual C++ Express Edition(I''d also like to get rid of that #include "stdafx.h" ifthere''s some compiler configuration that will allow meto do that.)This has to do with pre-compiled headers in VC++. I don''t knowspecifically to correct that in Express, but check your projectsettings to remove any dependence. If you can''t figure it out, you''llneed a Microsoft newsgroup. Brian I''m using Microsoft Visual C++ Express Edition(I''d also like to get rid of that #include "stdafx.h" ifthere''s some compiler configuration that will allow meto do that.)when u create your project in msvc++ new project->Win32(win32 console app template is automaticallyselected) ->(enter a name for the project)->next->select "empty project"option->finish then add the header and source files that u need. and more simply...new project->select "general " option from the Project type window->finish //THIS DOESN''T WORK. COMPILER COMPLAINSstatic const struct LVC[4] = {{ 0xAC01, 0xAC1B },u did not name the "template" ..it has been answered above regards 这篇关于创建只读数据数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-25 03:31