相关疑难解决方法(0)

C中数组的最大大小是多少?

我知道硬件将限制程序执行期间分配的内存量.但是,我的问题是不考虑硬件.假设内存量没有限制,那么阵列没有限制吗?

c arrays

45
推荐指数
4
解决办法
12万
查看次数

课程的大小限制是多少?

我想知道课程的大小限制是多少.我做了一个简单的测试:

#define CLS(name,other) \
class name\
{\
public: \
name() {};\
   other a;\
   other b;\
   other c;\
   other d;\
   other e;\
   other f;\
   other g;\
   other h;\
   other i;\
   other j;\
   other k;\
};

class A{
   int k;
public:
   A(){};
};

CLS(B,A);
CLS(C,B);
CLS(D,C);
CLS(E,D);
CLS(F,E);
CLS(G,F);
CLS(H,G);
CLS(I,H);
CLS(J,I);
Run Code Online (Sandbox Code Playgroud)

它无法编译

"'J':上课太大了"

如果我删除最后的声明 - CLS(J,I);,这一切都很好.

这是编译器强加的限制,还是在标准的某个地方?

c++ oop class

9
推荐指数
1
解决办法
2642
查看次数

C 函数通常比 OOP 语言的方法有更多的参数吗?

我不得不编写一个超过 600 行和大约 25 个函数的 C 程序。这是我写过的最长的 C 代码。

我注意到一些函数有超过 5 个参数。直接从 main() 调用的那些有更多的参数。它离 main() 越远,越少。

我还注意到我经常不得不将参数传递给函数,不是因为该函数直接使用该参数,而是该函数调用另一个需要该参数的函数。

所以它看起来像

void f1(int a, int b,..., int bar){
    int foo = f2(bar); // the only time 'bar' is used in f1
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我试图尽量减少全局变量的使用,但我不得不声明一些全局变量,因为有些参数变得过于冗余。基本上我必须将这些参数传递给每个函数。

我不是一个有经验的程序员,但是当我用 Java 编程时,我认为我不需要编写一个超过 5 个参数的方法。

在 C 中传递比其他语言更多的参数是否正常?这只是过程式编程与面向对象编程的本质吗?还是我只是在写不好的 C 代码?

c arguments procedural-programming function

2
推荐指数
1
解决办法
145
查看次数

标签 统计

c ×2

arguments ×1

arrays ×1

c++ ×1

class ×1

function ×1

oop ×1

procedural-programming ×1