![]() |
1
6
对寄存器参数或函数参数的限制可能如下:
我想不出防止数组参数会有什么问题,但是PJ Plauger在他的书《标准C库》中这样说:
我想很少有人比plauger更了解c库的内部和外部。我希望有人能用一个实际的例子来回答这个特定的问题,我认为这将是一个有趣的琐事。 新信息:
“国际标准编程语言的基本原理-c”这样说
这并不能帮助我限制数组参数。 |
![]() |
2
3
它不是未定义的。请记住,当参数声明为
我必须承认,我不确定规范中的这个位是什么用途,因为首先不能有函数或数组类型的参数(因为它们会导致指针衰减)。 |
![]() |
3
2
我找到了另一个相关的引语, from Dinkumware .
很显然,问题是参数的传递方式与声明方式不同。有趣的是,他们也禁止浮动和空头,尽管这些应该得到标准的支持。
作为一个假设,可能是一些编译器在执行
某些(错误的)编译器将返回
|
![]() |
4
1
我只能猜测
但我对数组/函数的限制一无所知。如果它只在C++标准中,我会冒昧地猜测,存在一个模糊不清的模板匹配场景,其中一个类型的参数之间存在差异。
我的结论是:标准的疏忽。可能的场景:一些标准C编译器实现的类型为
|
![]() |
5
1
C++ 11表示:
C99也是:
你说:
对,所以你给我们看的两段代码没有区别。都有
那么,在ub方面,为什么两者会有区别呢? 你引用的那篇文章…
…适用于 也不 ,正如所料。 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 3 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 3 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 3 月前 |
![]() |
Geremia · 2D NumPy数组+1D数组? 4 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 5 月前 |
![]() |
Paul Williams · 迭代数组时输出有问题 5 月前 |