标签: standards

Symfony 和 Doctrine 中有数据库标准吗?

Symfony 使用一套编码标准来为我们规定如何编程以及应该使用什么风格。我的问题简短而简单。我想知道 symfony(与 ORM 学说一起)在构建和构建我的数据库时是否有一套类似的标准。

例如:

  • 我应该使用驼峰保护套吗?
  • 我的表名应该是 user 还是 users
  • 我使用大写字母吗?
  • 推荐什么字符集?

standards symfony doctrine-orm

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

C/C++:预处理器指令应如何处理宏参数列表?

C 和 C++ 标准都指定了以下内容:

\n
\n

16.3.1 参数替换 (C++11)

\n

6.10.3.1 参数替换 (C11)

\n

在识别出调用类似函数的宏的参数后,将进行参数替换。替换列表中的参数,除非前面有 # 或 ## 预处理标记或后面有 ## 预处理标记(见下文),否则在其中包含的所有宏都已展开后将被相应的参数替换。在被替换之前,每个参数\xe2\x80\x99s预处理标记被完全宏替换,就好像它们形成了预处理文件的其余部分一样;没有其他可用的预处理标记。

\n
\n

人们可以将本段解释为标准要求:

\n

(1) 首先识别宏参数(以逗号分隔),然后分别展开每个参数中包含的所有宏,

\n

或者

\n

(2) 展开参数列表中包含的所有宏,然后识别每个参数。

\n

为了说明这一点,让我们考虑以下示例代码:

\n
#define CONDITION (0)\n\n#if (CONDITION > 0)\n#define FunctionAlias(par_a, par_b, par_opt, par_c) \\\n          FunctionName(par_a, par_b, par_opt, par_c)\n#else\n#define FunctionAlias(par_a, par_b, par_c) \\\n          FunctionName(par_a, par_b, par_c)\n#endif\n\nint global_a, global_b, global_c;\n#if (CONDITION > 0)\nint global_opt;\n#endif\n\nvoid FunctionName(int a, int b, int c)\n{\n}\n \nvoid AnotherFunction()\n{\n   FunctionAlias(\n                  global_a,\n                  global_b,\n                  #if (CONDITION > 0)\n                  global_opt,\n …
Run Code Online (Sandbox Code Playgroud)

c c++ standards preprocessor c-preprocessor

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

如果 std::vector::insert(pos, value) 的 pos 无效怎么办?

根据cppref

constexpr iterator insert( const_iterator pos, const T& value );

返回值

指向插入值的迭代器。

复杂

pos 与容器末端之间距离的常数加上线性。

例外情况

如果在末尾插入单个元素时抛出异常,并且 T 为 CopyInsertable 或 std::is_nothrot_move_constructible::value 为 true,则不会产生任何影响(强异常保证)。

如果pos无效,说明文档没有明确描述以下问题:

  1. 返回值是多少?
  2. 是否会抛出异常?

所以,我的问题是:

std::vector::insert(pos, value) 如果无效 怎么办pos

c++ standards exception vector c++20

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

如何彻底解决scanf输入流问题

假设我想运行以下 C 代码片段:

scanf("%d" , &some_variable);
printf("something something\n\n");

printf("Press [enter] to continue...")
getchar(); //placed to give the user some time to read the something something
Run Code Online (Sandbox Code Playgroud)

这个片段不会暂停!问题是 会将scanf“enter”( \n)字符留在输入流1中,弄乱其后面的所有内容;在这种情况下,他们getchar()会吃掉\n而不是等待真正的新角色。

由于我被告知不要使用fflush(stdin)(我真的不明白为什么),我能想出的最佳解决方案就是在代码开头重新定义扫描函数:


void nsis(int *pointer){ //nsis arconim of: no shenanigans integer scanf
     scanf("%d" , pointer);
     getchar(); //this will clean the inputstream every time the scan function is called
}
Run Code Online (Sandbox Code Playgroud)

然后我们只需使用nsis代替scanf. 这应该会飞。然而,这似乎是一个真正自制的、用胶带组合在一起的解决方案。专业的 C 开发人员如何处理这个烂摊子?scanf他们根本不使用吗?他们是否只是接受使用脏输入流?这里的标准是什么?

我无法在任何地方找到明确的答案!我能找到的每个来源都提到了不同的(且粗略的)解决方案......


编辑:回应所有评论某些版本的“只是不要使用 …

c standards user-input input scanf

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

C: NULL > NULL 总是假?

type_t* x = NULL; type_t* y = NULL;鉴于我们总是x > y评估错误,C 标准是否能保证这一点?我问因为会话在初始或终端malloc缓冲区中可能吗?由此看来,人们应该小心指针比较,并且只有在处理指向同一数组元素的指针时才进行比较,松散地说。但是,保证评估为 false 很方便x > y,因为我想要一个结构,它是一个堆栈数组,具有第一个和最后一个元素的字段,如果该数组仍然有0元素,则设置这些字段很方便是NULL,并且仍然允许for循环遍历数组的元素是很方便的,而不需要显式检查数组是否有0元素或更多,所以这样的比较很方便......

c standards pointers null-pointer

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

是否期望Delphi 7中项目组的所有单元都在一个文件夹中?

也许这适用于其他Delphi(我只用了7).我们已经破解了我们的代码,以便我们相当庞大的应用程序中的几乎每个DLL都在不同的文件夹中.

我下载到插件到Delphi的99%的开源资源都将其所有源代码都放在一个文件夹中.

看起来这是一个假设,即Delphi的开发人员对其用户的编码实践做出了可能不明显的假设.

delphi standards packages

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

网址礼仪?

鉴于我对PHP"包含"功能的新理解,我猜我的网站上的所有页面都是.php扩展名.

这会被认为是奇怪的吗?

我曾经认为大多数页面都是.htm或.html,但是在浏览网络时,我注意到确实没有任何"标准".

如果我想从php文件调用我的菜单,我真的不认为我有选择.就像我所看到的那样,它就是这样的...所以只要反复大家就能感受到"真正的程序员"对这些问题的感受.

url standards file-extension

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

C++(真的)安全标准字符串搜索?

缓冲区溢出问题是众所周知的.因此,我们有幸使用标准库函数,如wcscat_s().微软的好心人已经创建了类似的安全字符串函数,如StringCbCat().

但我有一个问题,我需要搜索一些字符串的内存.标准库函数:

wcsstr( wchar_t* pMem, wchar_t* pStr ) 
Run Code Online (Sandbox Code Playgroud)

看起来很棒,但是...有时我的记忆包含垃圾,有时候是字符串.当它是垃圾时,我有时会运行已分配的内存页面,[=访问冲突].我可以写自己的功能是的.但我的问题是,是否有任何"标准"功能来进行安全字符串搜索,例如:

"wcsstr_s( wchar_t* pMem, size_t uiSize, wchar_t* pStr )" ?
Run Code Online (Sandbox Code Playgroud)

感谢名单

[编辑] 感谢Charles Bailey对我的问题的完美回答.感谢其他人的努力.

对于那些怀疑我的场景的理智的人:是的,当然,在我的记忆中永远不会有垃圾是好的.但我可以想象出现这种情况的几种情况.在我的特殊情况下,它是逆向工程,而我正在处理的内存实际上不是"我的记忆",它属于另一个我无法控制的过程.

(另一个假设场景可能是一个棘手的调试情况,需要跟踪损坏的内存.)

c++ string search standards

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

假设C中的整数是由硬件规范处理还是在软件中处理?

假设C中的整数是由硬件规范处理还是在软件中处理?

按整数,我指的是原语"int"

根本的想法是,如果C中的整数不依赖于硬件,那么让gcc实现不同的整数处理程序会违反标准.这样你就可以拥有传统的32位int处理程序,然后你也可以使用256位整数的处理程序,甚至可以使用动态大小的整数.

我确实知道long和long long,但我不确定它们是否独立于提供的硬件,我只想指定构建工具链时要使用的"int"处理程序的大小/类型.

我也理解这样做的危险(因为使用32位整数编译器构建256位整数会很糟糕!),但对于那些需要类似gmp库的代码,我认为它会使代码可读性更好.兼容性是相同的,但依赖性将在编译器而不是代码本身.

疯狂的想法,我知道......但回到最初的问题:

假设C中的整数是由硬件规范处理还是在软件中处理?

c math standards gcc gmp

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

Java的applet是Java SE在网站上工作的唯一途径吗?

Java SE(标准版)是否提供了一种使程序在Applet旁边在线工作的方法?或者applet是唯一的方法吗?

java standards applet

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