在我正在研究的C++项目中,我有一个标志值,它可以有四个值.这四个标志可以组合在一起.标志描述数据库中的记录,可以是:
现在,对于我希望保留此属性的每条记录,我可以使用枚举:
enum { xNew, xDeleted, xModified, xExisting }
Run Code Online (Sandbox Code Playgroud)
但是,在代码的其他地方,我需要选择哪些记录对用户可见,所以我希望能够将其作为单个参数传递,如:
showRecords(xNew | xDeleted);
Run Code Online (Sandbox Code Playgroud)
所以,似乎我有三个可能的附件:
#define X_NEW 0x01
#define X_DELETED 0x02
#define X_MODIFIED 0x04
#define X_EXISTING 0x08
Run Code Online (Sandbox Code Playgroud)
要么
typedef enum { xNew = 1, xDeleted, xModified = 4, xExisting = 8 } RecordType;
Run Code Online (Sandbox Code Playgroud)
要么
namespace RecordType {
static const uint8 xNew = 1;
static const uint8 xDeleted = 2;
static const uint8 xModified = 4;
static const uint8 xExisting = 8;
}
Run Code Online (Sandbox Code Playgroud)
空间要求很重要(字节与整数),但并不重要.使用定义我失去了类型安全性,并且enum
我失去了一些空间(整数),并且当我想要进行按位操作时可能需要进行转换.随着 …
我知道#define
s等通常不会缩进.为什么?
我正在使用一些代码,其中包含#define
s,#ifdef
s,#else
s,#endif
s等的可怕混合.所有这些通常与正常的C代码混合在一起.#define
s 的非缩进使它们难以阅读.缩进代码与非缩进#define
s的混合是一场噩梦.
不缩进#define
的好处是什么?如果我缩进它会不会让我成为一个坏人?这不是更好吗?
#ifdef SDCC
#if DEBUGGING == 1
#if defined (pic18f2480)
#define FLASH_MEMORY_END 0x3DC0
#elif defined (pic18f2580)
#define FLASH_MEMORY_END 0x7DC0
#else
#error "Can't set up flash memory end!"
#endif
#else
#if defined (pic18f2480)
#define FLASH_MEMORY_END 0x4000
#elif defined (pic18f2580)
#define FLASH_MEMORY_END 0x8000
#else
#error "Can't set up flash memory end!"
#endif
#endif
#else
#if DEBUGGING == 1
#define FLASH_MEMORY_END 0x7DC0
#else
#define …
Run Code Online (Sandbox Code Playgroud) 在许多程序中,a #define
用作与常量相同的目的.例如.
#define FIELD_WIDTH 10
const int fieldWidth = 10;
Run Code Online (Sandbox Code Playgroud)
我通常认为第一种形式优先于另一种,依靠预处理器来处理基本上是应用程序的决定.这个传统有原因吗?
我是Objective-C的新手,我有一些关于const
和预处理指令的问题#define
.
首先,我发现无法使用定义常量的类型#define
.这是为什么?
第二,使用其中一个比另一个更有优势吗?
最后,哪种方式更有效和/或更安全?
我正在搜索为LaTeX文档执行正确字数的应用程序或脚本.
到目前为止,我只遇到过只能处理单个文件的脚本,但我想要的是一个可以安全地忽略LaTeX关键字并遍历链接文件的脚本...即关注\include
和\input
链接以生成正确的字数整个文件.
使用vim,我目前使用ggVGg CTRL+G
但显然显示当前文件的计数,并且不会忽略LaTeX关键字.
有谁知道任何可以完成这项工作的脚本(或应用程序)?
sizeof(enum)== sizeof(int),总是吗?
通常的做法是什么?如果我必须通过网络传输这些返回类型,并且必须在另一端完成某些处理,那么您更喜欢枚举/ #define/const ints.
编辑 - 只是检查网络,因为编译器不象征性地链接宏,人们如何调试,比较整数值与头文件?
来自答案 - 我在下面添加这一行,因为我需要澄清 -
"因此它是实现定义的,而sizeof(枚举)可能等于sizeof(char),即1."
您能否就在Opensource和Enterprise MongoDB之间进行选择提出建议.现在的要点是:
在这一点上,开源和企业MongoDB之间有什么区别吗?
您能否澄清一下有关License Commercial和GNU AGPL v3.0之间区别的一个更重要的观点.对于Mongo?
在C中,我是否更喜欢常量而不是定义?我最近阅读了很多代码,所有的例子都大量使用了定义.
对JVM的哪些更改最有利于Scala编译器和运行时?
通过引入InvokeDynamic
计划到达JVM 7 的字节代码,动态语言将在性能上受益匪浅,Scala可能会受益于尾递归(不确定它是否会出现在JVM 8或更高版本中).
Scala及其现有功能集可以从JVM中获益吗?这些变化即将到来吗?
具体来说,JVM是否会对闭包和函数作为对象提高性能?
当我尝试访问我的spring应用程序的注销URL时,我收到404错误并No mapping found for HTTP Request with URI [/logout] in DispatcherServlet with name 'mvc-dispatcher'
在我的服务器日志中.
我已经尝试过调用j_spring_security_logout无法正常工作,Spring安全注销问题以及SO上的所有相关结果.
我包含了完整的配置文件,因为我还不太清楚Spring xml结构.
我的安全配置:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<http pattern="/resources/**" security="none" />
<http auto-config="true">
<intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login" default-target-url="/"/>
<logout logout-url="/logout" />
<csrf />
</http>
<global-method-security secured-annotations="enabled" />
<authentication-manager>
<authentication-provider user-service-ref="userDetailsService" />
</authentication-manager>
</beans:beans>
Run Code Online (Sandbox Code Playgroud)
我的web.xml
是这样的:
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>XYZ</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/*-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> …
Run Code Online (Sandbox Code Playgroud) c ×4
const ×3
coding-style ×2
enums ×2
c++ ×1
enterprise ×1
indentation ×1
java ×1
jvm ×1
latex ×1
mongodb ×1
objective-c ×1
scala ×1
spring-mvc ×1
word-count ×1