草庐IT

main_model

全部标签

c++ - 为什么我可以在 main() 之前通过 std::map 填充变量?

我在一个旧程序中偶然发现了一些奇怪的行为,并且弄清楚了为什么G++和CLang++允许它发生。我在main()之前声明并初始化了一些全局变量。奇怪的是,它们是通过静态std::map初始化的,同时使用下标运算符对其进行填充。一旦main()运行,一切似乎都在正确的位置,map的大小显示正确数量的填充项目以及包含main()之前显示的值的变量。#include#includestaticstd::mapstaticMap;constchar*consta=staticMap[0]=[]()->constchar*{return"a";}();constchar*constb=static

c++ - main() 在哪里返回它的值?

我刚开始使用CODE::BLOCKS+mingw编译器如果我在程序结束时不输入return0,我可以看到main()正在返回一些整数,我了解到main()返回0推断程序成功执行。我没有发现我的代码有任何缺陷,为什么它返回一些整数?其次任何函数都将其值返回到其函数调用,main()将其值返回到哪里? 最佳答案 C++标准规定,如果您没有显式返回一个值,编译器必须生成代码,就好像您已经键入:return0;返回值的确切含义以及返回方式是特定于实现的。对于大多数操作系统,返回值成为进程的退出代码。

c++ - int 变量 = 1; void main() { int i = i; }

这是我遇到的一道面试题:intvar=1;voidmain(){inti=i;}赋值后i的值是多少?它真的依赖于编译器还是只是未定义?我在cygwin上的g++似乎总是给我0。谢谢 最佳答案 i有一个不确定的值,因为它没有被初始化。因此,它不仅依赖于编译器,而且还依赖于该内存位置中发生的任何事情。局部范围内的变量在C++中不被初始化。我假设顶部的intvar=1;你的意思是inti=1;。局部作用域i仍将被使用,因为变量的声明点紧接在其声明符之后和其初始化程序之前。更具体地说,C++03标准的第3.3.1-1节:Thepointof

C++ void 作为函数调用的前缀。例如。 `main() {void func();}`

voidfunc(){assert(0);}intmain(){voidfunc();}上面的代码没有调用func(),至少没有到达断言。并不是说我真的需要知道,但我只是好奇,这里发生了什么? 最佳答案 您正在为名为func的函数声明原型(prototype),该函数不返回任何内容且不接受任何参数。这是函数调用和函数原型(prototype)之间的(其中之一)细微差别。请注意main上面的行,即voidfunc(){assert(0);},对这是原型(prototype)还是调用没有影响。您可以删除它,代码会做同样的事情-即什么都不

c++ - C/C++中函数main()的地址

有没有办法在C或C++中找到ma​​in()的地址?既然本身就是一个函数,会不会有自己的地址? 最佳答案 C当然。只需继续去做。#includeintmain(void){printf("%p\n",&main);}C++不允许使用main的地址,因此,为了您的目的,没有一个:[C++11:3.6.1/3]:Thefunctionmainshallnotbeusedwithinaprogram.[..]但是,在GCC中,您可以通过编译器扩展采用与在C中相同的方法:#includeintmain(){std::cout您将收到一条警告

c++ - int main(int argc, char *argv[])

如果我有这个:intmain(intargc,char*argv[])在正文中,您有时可以找到使用argv[1]的程序。我们什么时候使用argv[1]而不是argv[0]?是否仅当我们只想读取命令行中的第二个参数时? 最佳答案 按照惯例,argv[0]是当前程序的名称(或路径),argv[1]到argv[argc-1]是用户提供的命令行参数。但是,这并不必须是真实的——程序可以使用特定于操作系统的功能来绕过这一要求,而且这种情况经常发生,您应该意识到这一点。(不过,我不确定即使您意识到这一点,您是否可以做很多事情...)例子:gcc

c++ - 为什么在 C 程序中从 main() 返回 0?

这个问题在这里已经有了答案:Whatshouldmain()returninCandC++?(19个回答)关闭8年前。在编写C/C++程序时,特别是使用最新的编译器时,为什么我们需要从main()方法返回一个整数?就像intmain()一样,我们从中返回“return0”。那么这背后的确切原因是什么?

python - 导入一个简单的 Tensorflow frozen_model.pb 文件并在 C++ 中进行预测

我正在尝试将从TensorflowPython导出的图表导入TensorflowC++。我已经成功地将图表重新导入到Python中。我现在唯一想要的是用C++编写相同的代码,但我不确定C++api函数及其用法,因为Tensorflow网站上的文档不够好。这是我目前找到的C++代码。C++:namespacetf=tensorflow;tf::Session*session;tf::Statusstatus=tf::NewSession(tf::SessionOptions(),&session);checkStatus(status);tf::GraphDefgraph_def;sta

C++ main 仅使用 ~20% 的时间说 gprof

我尝试使用gprof分析我的C++程序。该程序本身运行了大约53秒,所以我不明白为什么它说,main只运行了大约8.29秒。有什么解释吗?摘录如下:index%timeselfchildrencalledname[2]20.50.008.29main[2]0.008.281/1MPQS::start(std::basic_ofstream>&)[3]0.000.011/1MPQS::MPQS(NTL::ZZ,long)[36]0.000.001/1MPQS::~MPQS()[78]-----------------------------------------------0.008.

hibernate - "migrate business logic code into our domain model"是个好主意吗?

我正在阅读HibernateinAction,作者建议将业务逻辑移动到我们的域模型中(第306页)。例如,在本书提供的示例中,我们有三个实体,分别名为Item、Bid和User,作者建议添加一个placeBid(Userbidder,BigDecimalamount)方法到Item类。考虑到通常我们有一个独特的业务逻辑层(例如Spring中的Manager或Service类),其中包括控制事务等,这真的是一个好建议?不给我们的实体添加业务逻辑方法不是更好吗?提前致谢。 最佳答案 如前所述Wehaveadistinctlayerfor