标签: standards

一元减去0x80000000(有符号和无符号)

n3337.pdf草案5.3.1.8规定:

一元运算-符的操作数应具有算术或无范围的枚举类型,结果是其操作数的否定.对整数或枚举操作数执行整体提升.通过从2ⁿ减去其值来计算无符号数量的负数,其中n是提升的操作数中的位数.结果的类型是提升的操作数的类型.

在某些情况下,这就足够了.假设unsigned int是32位宽,那么(-(0x80000000u)) == 0x80000000u,不是吗?

不过,我找不到关于无符号0x80000000上的一元减号的任何内容.此外,C99标准草案n1336.pdf,6.5.3.3似乎没有提及:

一元运算符的结果是其(提升的)操作数的否定.整数提升在操作数上执行,结果具有提升类型.

UPDATE2:我们假设unsigned int是32位宽.所以,问题是:C中的一元减号(有符号和无符号),以及C++中的一元减号(仅限签名)?

UPDATE1:运行时行为和编译时行为(即常量折叠)都很有趣.

(相关:为什么是abs(0x80000000)== 0x80000000?)

c c++ standards unary-operator

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

C++ main vs C main

我正在阅读一篇关于C++ vs C的文档.文档说C++与C相比是紧密编写的.一个例子是,C允许main()函数类型为void.另一方面,C++不允许这样做,他从标准中给出了以下声明.

在C++标准中:

它的返回类型应为int,否则其类型是实现定义的.所有实现都应允许以下两个主要定义:

int main() { /* … */ }
Run Code Online (Sandbox Code Playgroud)

int main(int argc, char* argv[]) { /* … */ }
Run Code Online (Sandbox Code Playgroud)

C标准说的相同,但有一个额外的声明.

如果返回类型与int不兼容,则未指定返回到主机环境的终止状态

这表明允许不返回int的表单是故意的.

如果您有"可以实现定义的类型"的语句,您是否不允许C++编译器实现社区允许void作为类型?

c c++ standards program-entry-point

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

选择实体框架作为Nhibernate,cons和pros的默认实现ORM?

我在一家开发公司,开发中小型基于Web的项目,我们主要使用Microsoft技术,目前我们处于技术选择阶段,我们正在研究ORM,我们需要为未来选择标准ORM项目,目前我们将选择范围缩小为两个: -

•Nhibernate: -

  1. 成熟.
  2. 开源.
  3. 功能丰富.
  4. 可配置且灵活,最高可扩展.
  5. 得到强大社区的支持.
  6. 事实证明,许多地方都是成功的.

•EntityFramework: -

  1. Microsoft产品; 这意味着与其他Microsoft产品紧密集成.
  2. 高度支持和大量的在线资源,在线社区相当强大.
  3. 进展非常快,修复速度非常快,并且日益变得越来越好.
  4. LINQ.
  5. 比Nhibernate更低的学习曲线.

该技术分别按以下方法测量: -

  1. 易于使用 - 时间在我们的项目中确实是一件至关重要的事情.
  2. 长期决定,我的意思是我们不会继续在技术之间转换.
  3. 与Microsoft产品集成.
  4. 在合规工具(例如Nhibernate的activerecord),社区和发布方面提供支持.
  5. 这将是我们将使用的唯一标准.
  6. 配置灵活.
  7. 功能 - 我们不需要很多复杂的映射,也不需要二级缓存,我们现在可以用SP替换批处理.

我的问题选择针对Nhibernate的实体框架,作为我们公司未来的ORM默认实现,从长远来看,这样的决定有什么缺点和优点?

别误会我的意思; 我知道Nhibernate暂时是正确的答案,但它是不久的将来,甚至远期未来的正确选择,考虑到EntityFramework的快速发展.


我依赖的一些资源用于研究: -

http://ayende.com/blog/4351/nhibernate-vs-entity-framework-4-0

NHibernate,实体框架,活动记录或linq2sql

我应该使用哪种ORM工具进行.Net开发

http://blogs.msdn.com/b/adonet/archive/2012/03/22/ef5-beta-2-available-on-nuget.aspx

.net nhibernate standards entity-framework

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

在VB.Net中使用Me关键字的标准

我想找出在VB.Net语法中使用(Me)关键字的标准或首选方法.

目前我知道3种使用方法(Me).

没有(Me)关键字:

Cursor = Cursors.WaitCursor

RadioButtonSortBySurname.Checked = True

LightGrid.SortColumn(2)
LightGrid.Columns(2).LastSortState = Ascending
LightGrid.SortColumn(1)
LightGrid.Columns(1).LastSortState = Ascending

Cursor = Cursors.Default

LightGrid.StatusRowText = ""
LightGrid.Select()
Run Code Online (Sandbox Code Playgroud)

(Me)在Using结构中:

Using Me
    Cursor = Cursors.WaitCursor

    RadioButtonSortBySurname.Checked = True

    LightGrid.SortColumn(2)
    LightGrid.Columns(2).LastSortState = Ascending
    LightGrid.SortColumn(1)
    LightGrid.Columns(1).LastSortState = Ascending

    Cursor = Cursors.Default

    LightGrid.StatusRowText = ""
    LightGrid.Select()
End Using
Run Code Online (Sandbox Code Playgroud)

在每个控件上使用(Me):

Cursor = Cursors.WaitCursor

Me.RadioButtonSortBySurname.Checked = True

Me.LightGrid.SortColumn(2)
Me.LightGrid.Columns(2).LastSortState = Ascending
Me.LightGrid.SortColumn(1)
Me.LightGrid.Columns(1).LastSortState = Ascending

Cursor = Cursors.Default

Me.LightGrid.StatusRowText = ""
Me.LightGrid.Select()
Run Code Online (Sandbox Code Playgroud)

vb.net standards coding-style keyword

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

串口 - 如何安全搜索我的设备?

我正在编写与我自己设计的电子设备进行通信(通过串口)的应用程序.

当我的PC应用程序启动时 - 它会逐个打开可用的COM端口并发送一些字符串(例如,"你是什么?").

我的设备被编程,用自己的ID回复那个"魔术问题"(例如:"我是监督员工的邪恶设备").

当我的PC软件收到"魔术回复"时,它开始正常工作,而不再搜索其他端口.

当然我不是在数据传输中使用愚蠢的问题,这只是一个例子.

问题是 - 我可以发送所有(非忙)端口上的字符串来发现我的设备吗?

如果我可以 - 那个"问题"字符串应该如何?有没有标准化的标准?

这不是我桌面上的第一个这样的项目,但现在我正在为小行业开发解决方案,我需要更加关注我的应用程序正在做什么,因为可能有其他设备连接到COM端口而我不知道他们怎么能反应.

对不起,如果我犯了一些语言错误,英语是我的第三语言.

在此先感谢您的回复.

standards serial-port protocols serial-communication

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

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

什么是标准定义的std :: wstring的字节序?

我知道UTF-16有两种类型的endianness:big endian和little endian.

C++标准是否定义了std :: wstring的字节顺序?或者它是实现定义的?

如果它是标准定义的,那么C++标准的哪个页面提供了有关此问题的规则?

如果它是实现定义的,如何确定它?例如在VC++下.编译器是否保证std :: wstring的字节序严格依赖于处理器?

我必须知道这一点; 因为我想将UTF-16字符串发送给其他人.我必须在UTF-16字符串的开头添加正确的BOM以指示其字节顺序.

简而言之:给定一个std :: wstring,我该如何可靠地确定它的字节序?

c++ string unicode standards endianness

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

ECMA262和ISO / IEC 16262之间的实际区别

有谁知道这两个标准之间的区别(实际上它们看起来是等效的)?

谢谢。

更准确地说,我已经从它们的网站上下载了这两个文档,如果您阅读索引,它们似乎是等效的。

javascript standards

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

编写C#属性的最短方式?

有人告诉我你可以替换以下代码:

private string name;

public string Name
{
    get;
    set;
}
Run Code Online (Sandbox Code Playgroud)

以下内容并没有任何不良影响:

public string Name;
Run Code Online (Sandbox Code Playgroud)

我意识到,像第一个例子中那样设置的属性与我删除它并设置原始属性时的属性几乎相同,public但是对于你需要的属性的第二种方式是不好的编程习惯基本的吸气剂和二传手?

c# syntax standards

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

我在哪里可以找到C规范?

我处于可能有机会向一些学生教授C的情况.大学希望教他们纯c而不是c ++,以保持高级c ++课程的独立性.

由于c ++是从c派生的,是否有一个官方的"c规则",其中包含c的所有功能,但没有c ++功能?我想知道的原因是我可以查看我需要教给学生的东西.

我曾经看过c ++标准的(2000页?)手册.即使现在是20/30岁,c也存在这样的事情吗?

此致,Ed

编辑:我应该指出,我已经很好地了解了C/C++ 3年.我唯一不知道的是"正式"C是什么,什么是"正式"C++.这是我的目标,所以我可以给其他学生一个比我自己更好的教育.

c standards

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