小编gon*_*one的帖子

size_t是字大小吗?

size_t编译代码的机器的字大小?

用g ++解析,我的编译器视图size_tlong unsigned int.在编译器被调用之前,编译器是否在内部选择某个预处理器宏的大小size_t,或者size_t实际上是stddef.h在字大小内设置的?

还是我偏离轨道?

c c++ size-t

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

.bss vs COMMON:到底是什么?

从我的书:

.bss段:

未初始化的全局C变量

共同:

尚未分配的未经初始化的数据对象

我不得不说,我看不出明显的区别.我甚至不太明白什么是无限制的,未分配的数据对象......似乎什么都没有.我使用GNU的readelf工具试着看一些简单的C代码,但找不到一个COMMON符号.我读过像FORTRAN的COMMON类型的东西是一个COMMON符号的例子 - 但我不知道FORTRAN

有人可以为我区分这两个吗?如果可能的话,希望用C的例子?非常感激.

编辑:从这篇文章中,变量c在这里:

int c;
int main() {} ...
Run Code Online (Sandbox Code Playgroud)

应该是COMMON.但是使用objdump -t节目给我说c在.bss中......

困惑

c linker elf

19
推荐指数
3
解决办法
9310
查看次数

__libc_start_main发生了什么?

我真的想从高级代码中理解步骤 - >可执行文件......但是我遇到了一些困难.

我写了一个空的int main() {}C文件,并试图解密反汇编objdump -d.这是发生了什么:

  • in _start,设置对齐,在堆栈上推送参数,调用__libc_start_main
  • __libc_start_main,第一行执行是jmp *0x8049658

然而,在使用objdump -R检查出的重定位记录,在价值0x8049658__libc_start_main本身!

我在这里错过了一些东西..

编辑:这是一些来源;

 080482c0 <__libc_start_main@plt>:
 80482c0:       ff 25 58 96 04 08       jmp    *0x8049658
 80482c6:       68 08 00 00 00          push   $0x8
 80482cb:       e9 d0 ff ff ff          jmp    80482a0 <_init+0x2c>

Disassembly of section .text:

080482d0 <_start>:
 80482d0:       31 ed                   xor    %ebp,%ebp
 80482d2:       5e                      pop    %esi
 80482d3:       89 e1                   mov    %esp,%ecx
 80482d5:       83 …
Run Code Online (Sandbox Code Playgroud)

c linux gcc dynamic-linking

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

Node.js中的中间件设计模式:连接

这个问题扩展了什么是Node.js的Connect,Express和"中间件"?

我正在学习Javascript - > Node.js - > Connect - > Express - > ...的路线,以便了解如何使用现代Web开发堆栈.我有低层网络的背景,所以开始使用Node.js nethttp模块很容易.使用服务器将请求路由到不同处理程序的一般模式看起来自然而直观.

转向Connect,我恐怕我不理解这个"中间件"的范例和数据的一般流程.例如,如果我创建一些用于Connect ala的中间件;

// example.js    
module.exports = function (opts) {
    // ...
    return function(req, res, next) {
        // ...
        next();
    };
};
Run Code Online (Sandbox Code Playgroud)

并在Connect via中"使用"它

var example = require('./example');
// ...
var server = connect.createServer();
// ...
server.use(example(some_paramater));
Run Code Online (Sandbox Code Playgroud)

我不知道我的中间件何时被调用.另外,如果我正在使用use()其他middlware,我可以保证调用中间件的顺序吗?此外,我假设该函数next()用于调用下一个(再次,我如何建立一个排序?)中间件; 但是,没有传递参数(req,res,next).这些参数是否以某种方式隐式传递?

猜测所使用的中间件模块的集合是串联起来的,从http回调开始- >因此在初始请求回调和服务器结束响应的过程添加了一堆功能.

我试图理解中间件范例,以及信息/执行的流程.

任何帮助是极大的赞赏.谢谢你的阅读

javascript middleware connect node.js

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

在node.js/express中使用EJS显示图像

我只想尝试使用node.js/express/ejs进行设置.我知道ejs不是真正的HTML,所以我很难显示一个简单的图像.有人能指出我正确的方向吗?

目录结构是:

  • 对myApp/server.js
  • 对myApp /视图/ index.ejs
  • 对myApp/logo.jpg

现在我有

// index.ejs
<img src = "../logo.jpg" />
Run Code Online (Sandbox Code Playgroud)

我是以错误的方式来做这件事的吗?谢谢.

ejs node.js express

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

获得符合c ++ 11的编译器

这一切似乎都是一个巨大的混乱.
我想要的只是一个实现C++ 11的编译器,所以我可以使用<chrono>.但是我从一开始就很困惑.

目前,我通过调用G ++来构建程序,但是当我检查版本时$ g++ -v,我得到:

gcc版本4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.11.00)


这是怎么回事?我使用的是G ++吗?GCC?LLVM?我甚至不知道.它们是一样的吗?


所以现在我正在尝试通过gnu.org构建和下载GCC 4.7 ,但我不知道任何指南正在谈论什么.对于我不知道的事情,我从未见过这么多的首字母缩略词.

为什么这么复杂?什么是所有这些版本,其中一些只实现C++ 11的某些部分而不是其他部分?

c++ macos gnu toolchain c++11

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

使用SMTP,Gmail和STARTTLS

所以我正在学习SMTP,并试图telnet通过SMTP发送一些邮件.

我很容易通过以下方式将邮件发送我的Gmail帐户:

$ host gmail.com
...
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.
...
$ telnet gmail-smtp-in.l.google.com 25
Trying 74.125.142.27...
...
Connected to gmail-smtp-in.l.google.com.
...
HELO <me@test.com>
...
Run Code Online (Sandbox Code Playgroud)

但是,我无法我的Gmail帐户发送邮件.根据我对SMTP的理解,我应该使用SMTP将来自<mygmailaddress@gmail.com>的邮件发送到传出的gmail SMTP服务器,后者又使用SMTP将邮件传输到接收方传入的SMTP服务器等.

但是,我遇到了困难.如果我telnet进入smtp.gmail.comvia端口465(gmail传出smtp邮件服务器规范),我会在启动后立即断开连接HELO <blah@blah.com>,或者要求STARTTLS.我无法找到如何进行的答案.

任何帮助表示赞赏.

旁注:目前我正在使用星巴克的免费Wi-Fi访问互联网.我实际上无法telnet直接从我的电脑(无路由到主机错误).相反,它只有在我首先ssh进入我学校网络的远程linux盒子然后telnet从那里工作时才有效.知道为什么会这样吗?

谢谢!

email ssl networking gmail smtp

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

学习.prototype

编辑:对于那些将来看到这篇文章的人来说,这个网站对于我消化Javascript无疑是至关重要的.如果你来自传统的OOP背景,我强烈推荐它.UML-esq图很棒.

我仍然无法理解Javascript中的.prototype属性.它只是对另一个对象的引用吗?或者它是指向另一个对象的指针?我来自C/C++/x86,看不出它是如何工作的.让我们看看我目前如何看待事物的一些例子; 它有助于指出我的错误,看看事情是如何运作的.我甚至不知道其中一些是否是有效的语法.Object并且Function分别是全局对象/功能对象.

1                                        // Global.prototype = ??
2                                        // Function.prototype = ??
3 
4   var obj1 = {};                       // obj1.prototype = Object 
5   obj2 = {};                           // obj2.prototype = Object
6
7   var func1 = function() {};           // func1.prototype = Function
8   func2 = function() {};               // func2.prototype = Function
9   function func3() {}                  // func3.prototype = Function  
10
Run Code Online (Sandbox Code Playgroud)

我很困惑.

11  var Foo = function() { this.prop1 = 0; }
12  var foo …
Run Code Online (Sandbox Code Playgroud)

javascript

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

互操作性如何工作

我知道许多大型应用程序(如视频游戏)都是使用多种语言创建的.例如,游戏/物理引擎可能是用C++编写的,而游戏任务,GUI则是用Python或Lua编写的.

我理解为什么这种角色划分已经完成; 将低级语言用于需要极端优化,调整,效率和速度的任务,同时使用更高级语言来加速生产时间,减少令人讨厌的错误等.

最近,我决定进行一个更大的个人项目,并希望将项目的部分内容与上述类似.在这个时间点,我真的很困惑语言之间的互操作性(尤其是编译与解释)之间的互操作性.

我很熟悉从ANSCII代码测试到加载可​​执行文件的细节,当用C/C++编写时.我非常好奇从像许多不同语言构建的视频游戏这样的东西起作用.这是一个大/广泛的问题,但具体我对以下内容感兴趣:

  • 代码级逻辑如何工作?即我如何从C++程序调用Python代码?特别是因为它们不支持相同的内置类型?
  • 程序图像是什么样的?据我所知,视频游戏是在一个进程中运行的,那么运行调用Python函数的C/C++程序时运行时图像是什么样的呢?
  • 如果从编译的程序中调用解释语言中的代码,那么发生的事件序列是什么?即如果我在我编译的可执行文件中,并且由于某种原因在循环内调用了解释语言,我是否必须每次迭代都等待解释器?

我实际上很难找到关于机器级别发生的事情的信息,所以任何帮助都会受到赞赏.虽然我对软件的互操作一般感到好奇,但我对C++和Python的交互特别感兴趣.

非常感谢您的任何见解,即使它只是指向我可以找到更多信息的地方.

c++ python language-interoperability game-engine

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

在Node.js中解析xls/xlsx/xlsm

在Node.js中运行,我需要能够从Excel .xls,.xlsx和.xlsm中解析单元格.

有解决方案吗?我怀疑那里有一个单独的模块可以做到这一点,所以也许有一种方法可以将两种格式内部转换为第三种格式,并且有一种格式解析器?

还有其他人遇到过这个问题吗?如果是这样,你想出了什么样的解决方案?

任何帮助是极大的赞赏.谢谢

excel xls xlsx node.js xlsm

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