小编Kir*_*rov的帖子

在函数内定义结构是否有任何"惩罚"?

只是出于好奇..

正如标题所说:在函数内定义结构是否存在任何"惩罚"?(如表现,记忆,糟糕的编程习惯等)


PS我知道,在函数内定义(非模板)仿函数是一种常见的做法,但仍然......)

c c++ struct function

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

左值作为赋值的左操作数

我为什么要来

lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

用单个字符串比较?我该如何解决这个问题C

if (strcmp("hello", "hello") = 0)
Run Code Online (Sandbox Code Playgroud)

谢谢!

c strcmp lvalue

23
推荐指数
2
解决办法
33万
查看次数

在IPv4客户端/服务器应用程序中添加对IPv6的支持 - sin6_flowinfo和sin6_scope_id字段?

我致力于为多个应用程序实现IPv6支持,但我想知道这两个字段是什么.关于这一点的问题很少,所以我不确定我做对了.

  • 关于范围ID(sin6_scope_id) - 好吧,Q1,Q2,Q3Q4给了我关于范围ID的想法,我想我明白了.所以,我将不得不再添加一个配置参数,以使scope-id可配置.(我决定在这里添加,以防有人对此感兴趣).短时间 - 范围ID是唯一确定哪个设备应该处理流量所必需的 - 因为可能有多个接口,具有相同的IP,但具有不同的(接口?)ID.到现在为止还挺好.
  • 但是"流量信息"怎么样(sin6_flowinfo)
    • 它是为了什么?我找不到任何有趣的东西.我阅读了RFC,但它根本没有帮助我.
    • 是否有一些可能的值sin6_flowinfo(比如 - 几个值,如标志,这意味着什么),或者它就像sin6_scope_id- 可能是任何值,取决于设备,我正在尝试连接?
    • 我应该担心它,或者我只是离开它0(就像在Beej的网络编程指南中一样.是的,我尝试过,它有效,但我不确定它是否只适用于这种情况(如果它取决于它)在某些网络配置上),或者如果设置为0?它将始终有效?
    • 或者,也许,我应该让它可配置,我的意思是 - 添加一个配置选项,并让用户定义它的值?
    • google-ing"sin6_flowinfo"给出了结构定义和手册页,对这个领域没什么用处.任何有趣的来源?(可理解的一个......不是RFC:D)

编辑:嗯,在@glglgl的回答和提示之后,这sin6_flowinfo可能已经过时了,我发现了一些有趣的资料来源: RFC:IPv6流标签规范, IETF草案:流标签作为传输层Nonce, solaris维基百科的实用指南.
该字段不是过时的(或者我找不到这样的来源,这证实了这一点),但看起来0价值已经足够好了.

c sockets network-programming ipv6

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

一个功能内的"extern"?

那么,阅读"有点旧"的书("C编程语言",第二版,丹尼斯·里奇),我得到了以下几点:

外部变量必须在任何函数之外定义一次; 这为它预留了存储空间.该变量还必须在每个想要访问它的函数中声明

我就像 - 什么?!

"还必须在每个想要访问它的函数中声明变量".然后,我又一次感到震惊:

int max; 
/* ... */
int main()
{
    extern int max;
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

还有一个 - 什么?!


据我所知(显然,它并不多,而且远远不够),extern只有当你在某个地方定义一个全局变量而你想通过另一个文件访问它时才有意义(而不是再次定义它).

所以:

  • 什么是这个点extern int max main或任何其他功能?
  • 该标准是否真的说,这是必须的(我需要声明,对于这个例子,每个函数中的最大值,它将使用它吗?)
  • C++是否相同(这就是我放置C++标签的原因)?这是我第一次看到这样的东西.

注意:这与在函数内声明静态变量作为extern的用法有什么不同?

c c++ global-variables kernighan-and-ritchie extern

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

GCC -lm -lz -lrt选项 - 它们是关于什么的?

我知道,这些是一些常见的/基本的库,但它们究竟是什么意思?

例如,我知道,这-lm是一些数学库,但这是标准的数学库还是什么?

-lz压缩?什么压缩?

我不知道这个是什么 - -lrt.


有人可以指定这些东西:

  • 数学库 - 我们在包含时使用的相同<cmath>或者<math.h>
  • 压缩库 - 这是什么意思 - 提供了一些我们可以用来压缩文件的工具,或者帮助编译器/链接器做一些压缩工作?

c++ unix linker gcc

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

如何在WPF中处理TabItem单击事件?

在我的应用程序中我使用了WPF TabControl我想处理的click事件TabItem.我如何实现它?

c# wpf

18
推荐指数
4
解决办法
3万
查看次数

在C++中返回一个范围

我在gcc 4.5.1的文件中遇到以下代码(看起来像头文件)iomanip:

inline _Setbase  
setbase(int __base)  
{ return { __base }; }  
Run Code Online (Sandbox Code Playgroud)

返回范围(块)的语言定义是什么?

c++ gcc

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

IP结构中的缩写"s_","ai_","sin_","in"(如果是这样)是什么意思?

非常简单的问题.是的,也许不是那么重要,但我真的好奇他们的意思是什么,我找不到他们的意思.


// ipv4
struct sockaddr_in {
    short int          sin_family;  // Address family, AF_INET
    unsigned short int sin_port;    // Port number
    struct in_addr     sin_addr;    // Internet address
    unsigned char      sin_zero[8]; // Same size as struct sockaddr
};

// ipv4    
struct in_addr {
    uint32_t s_addr; // that's a 32-bit int (4 bytes)
};

// ipv6
struct addrinfo {
    int              ai_flags;     // AI_PASSIVE, AI_CANONNAME, etc.
    int              ai_family;    // AF_INET, AF_INET6, AF_UNSPEC
    int              ai_socktype;  // SOCK_STREAM, SOCK_DGRAM
    int              ai_protocol;  // use 0 for "any" …
Run Code Online (Sandbox Code Playgroud)

c sockets linux ip network-programming

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

删除修饰符vs将声明函数声明为私有

我读过这个问题,但它对我来说仍然没有多大意义.它听起来更像是糖衣涂层功能.

有什么区别:

class A 
{
// public/private ?
    A (const A&) = delete; 
};
Run Code Online (Sandbox Code Playgroud)

class A 
{
private:
    A (const A&); // MISSING implementation
};
Run Code Online (Sandbox Code Playgroud)

相同operator=或其他功能.

c++ private delete-operator c++11

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

C中多行注释警告的含义是什么?

我正在为一个家庭作业分配一个C文件,我认为如果我的答案可见,我可能会帮助评分者:

//**********|ANSWER|************\\
//blah blah blah, answering the
//questions, etc etc
Run Code Online (Sandbox Code Playgroud)

并且在使用gcc编译时发现第一行末尾的反斜杠字符似乎触发了"多行注释"警告.当我删除它们时,警告消失了.所以我的问题是双重的:

a)反斜杠字符的存在究竟是如何使其成为"多行注释",以及
b)为什么多行注释仍然是一个问题?

c gcc warnings comments

16
推荐指数
3
解决办法
1万
查看次数