问题列表 - 第2720页

C中的常量数组类型,标准缺陷?

C99规范第6.7.3.8段规定

如果数组类型的规范包括任何类型限定符,则元素类型是合格的,而不是数组类型.如果函数类型的规范包括任何类型的限定符,则行为未定义.

基本原理(逻辑页面87,物理页面94)中,给出了将平面指针转换为(可变长度)数组指针的示例.

void g(double *ap, int n)
{
    double (*a)[n] = (double (*)[n]) ap;
    /* ... */ a[1][2] /* ... */
}
Run Code Online (Sandbox Code Playgroud)

当然,如果数组ap未在函数内修改,则应将其标记为const,但是应该标记为

void g(const double *ap, int n)
{
    const double (*a)[n] = (const double (*)[n]) ap;
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

不保留const限定符,因为(每6.7.3.8)它适用于目标的元素而不是目标本身,它具有数组类型double[n].这意味着如果给出适当的标志(-Wcast-qual对于GCC),编译器会正确地抱怨.无法const用C 表示数组类型,但此强制转换非常有用且"正确".该-Wcast-qual标志对于识别数组参数的误用非常有用,但误报不鼓励使用它.请注意,索引a[i][j]更具可读性,并且对于许多编译器而言,生成更好的机器代码,ap[i*n+j]因为前者允许通过较少的分析从内循环中提升某些整数运算.

编译器是否应将此视为特殊情况,有效地将限定符从元素提升到数组类型以确定给定的强制转换是否删除限定符或是否应修改规范?没有为数组类型定义赋值,因此限定符总是应用于数组类型而不仅仅是元素,这与6.7.3.8形成鲜明对比?

c standards

15
推荐指数
1
解决办法
4844
查看次数

单一数据库工具访问不同的数据库类型?

我想要一个可视化数据库工具,它允许我从同一个程序访问多种数据库类型.我正在寻找支持Mysql,PostgreSQL和Derby的任何东西.它支持的任何其他内容都是奖励.

mysql database postgresql derby

4
推荐指数
1
解决办法
648
查看次数

你怎么称这个图表说明了类层次结构?

所以我有一个UML类型图表,它记录了开发的类和层次结构.只是不知道你叫什么?

有什么建议?

oop uml

4
推荐指数
1
解决办法
278
查看次数

当URL重定向时,如何使用iText检索图像?

我正在使用iText为J2EE Web应用程序生成PDF发票,并且页面上包含从请求URL构造的URL中读取的图像.在开发和测试环境中,这工作正常,但在生产中我得到一个java.io.IOException:不是一个可识别的图像格式.

如果我将网址粘贴到我的浏览器中,则返回正确的图像,但请求会从http重定向到https.在我的代码中,如果我对重定向URL进行硬编码,则图像会正确显示.

因此,当使用com.lowagie.text.Image.getInstance(URL)检索图像时,似乎没有遵循URL上的重定向.如何使用iText从重定向的URL输出图像?

java pdf-generation itext

4
推荐指数
1
解决办法
9582
查看次数

擦除Char []

好吧,我正在研究别人的代码.他们做了很多这样的事情:

char description[256];
description[0]=0;
Run Code Online (Sandbox Code Playgroud)

我知道这会在字符数组的第一个位置放置\ 0.但这甚至是一种擦除字符串的安全方法吗?

视觉工作室也会报告内存泄漏,我几乎把这个完成与使用的字符串联系起来.

PS.是的我知道std :: string,是的,我使用它.这不是我的代码.

c c++ arrays string char

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

是否有合并的迭代器实现?

是否存在合并多个迭代器的Iterator实现?

class MergedIterator<T> implements Iterator<T>
{
     MergedIterator(Iterator<T>... iters)
     ....
}
Run Code Online (Sandbox Code Playgroud)

而接下来的方法应该移动到iters[1]时候!iters[0].hasNext()

java iterator

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

检测序列参数的正确方法?

我想编写一个接受参数的函数,该参数可以是序列也可以是单个值.值的类型是str,int等,但我希望它被限制为硬编码列表.换句话说,我想知道参数X是否是一个序列或我必须转换为序列以避免以后的特殊套管.我可以

type(X) in (list, tuple)

但是可能还有其他我不知道的序列类型,也没有共同的基类.

-N.

编辑:请参阅下面的"答案",了解为何大多数答案对我没有帮助.也许你有更好的建议.

python types sequences

18
推荐指数
2
解决办法
4365
查看次数

使用Python sqlite3 API的表,db模式,转储等的列表

由于某种原因,我找不到一种方法来获得sqlite的交互式shell命令的等价物:

.tables
.dump
Run Code Online (Sandbox Code Playgroud)

使用Python sqlite3 API.

有什么相似的吗?

python sqlite api dump

138
推荐指数
9
解决办法
16万
查看次数

是否仍需要在关闭XHTML中的空元素之前放置一个空格?

W3C建议在XHTML中的结束标记之前放置一个空格,因为这会使某些浏览器具有更好的向后兼容性,例如写入<br />而不是<br/>.但是那里还有浏览器,不能容忍你省略了空间吗?(W3C没有提到哪些浏览器会导致问题.)

我知道它并没有太多的差异.我只是喜欢较短的版本.因此,除非有充分的理由,否则我将在关闭空标记之前开始编码没有空格的XHTML.

xhtml coding-style

7
推荐指数
1
解决办法
609
查看次数

Java SE 6中的JPA/Hibernate,数据访问的最佳实践

我正在开始一个普通的Java SE项目,我打算使用JPA/Hibernate.我想知道是否有人可以告诉我在这种环境(数据访问层)中与Hibernate交互的最佳方式是什么?

java hibernate jpa

7
推荐指数
1
解决办法
8623
查看次数