小编sh3*_*fme的帖子

使用double包括C++中的守卫

所以我最近讨论了我的工作,其中我质疑使用双重防守对一名后卫的影响.双防护的意思如下:

头文件"header_a.hpp":

#ifndef __HEADER_A_HPP__
#define __HEADER_A_HPP__
...
...
#endif
Run Code Online (Sandbox Code Playgroud)

将头文件包含在头文件或源文件中的任何位置时:

#ifndef __HEADER_A_HPP__
#include "header_a.hpp"
#endif
Run Code Online (Sandbox Code Playgroud)

现在我明白在头文件中使用guard是为了防止多次包含已经定义的头文件,这是常见的并且有很好的文档记录.如果已经定义了宏,则编译器会将整个头文件视为"空白",并防止双重包含.很简单.

我不明白的问题是使用#ifndef __HEADER_A_HPP__#endif围绕着#include "header_a.hpp".同事告诉我,这为夹杂物增加了第二层保护,但是如果第一层绝对完成工作(或者它是什么?),我看不出第二层是如何有用的.

我能想到的唯一好处是它可以直接阻止链接器找到文件.这是否意味着改善编译时间(没有提到作为一个好处),或者在这里有什么其他工作我没有看到?

c++ macros linker

71
推荐指数
5
解决办法
7906
查看次数

将8位整数转换为dd/mm/yyyy

所以我在我的PHP脚本中有这个函数,它应该将日期作为8位整数,例如01042012转换01/04/2012为显示.

目前我正在尝试使用php的date()功能如下:

$int = 01042012;

$date = date("d/m/Y", $int);
Run Code Online (Sandbox Code Playgroud)

而不是它显示$date的值.01/04/201213/01/1970

这是因为date()想要传递给它的日期是在unix时间吗?如果是这样,是否可能有更直接的方法在字符2和4之后拆分int并只插入斜杠,然后重新组合它?就像explode()那样,但我没有任何性格可以分开.

php date date-conversion

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

基于C#中的变量从对象列表返回对象

我有一个类的对象列表Author,我想根据作者的一个属性搜索这个作者列表name,当我收到一个匹配项时,我想返回Author用于创建实例的实例另一个类,它需要Author作为其构造函数的一部分.

解释它的更好方法是:

author getAuthor(String arg_name)
{
  foreach (author auth in authorList)
  {
    if (auth.name == arg_name)
    {
      return auth;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

虽然我意识到这个特定代码确实有效,但是有更好的方法来执行此操作吗?

c# list

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

标签 统计

c# ×1

c++ ×1

date ×1

date-conversion ×1

linker ×1

list ×1

macros ×1

php ×1