向#define专家提问 - 页 2 123456789...12 新评论 Dmitry Fedoseev 2020.11.01 15:18 #11 哦,我的上帝,孩子们没有垫子就活不了。 Dmitry Fedoseev 2020.11.01 15:21 #12 Nikolai Karetnikov:谢谢你!)本质上。 这就是我在班级选项上的遗留问题。即使是像#define参数化这样的基本东西,如果没有日常使用,也会很快被遗忘。关于神经。天啊,这里的人都很敏感;你可以问一个没有暗示的问题,没有冒犯或侮辱的意图,但是没有,在一个未被承认的天才的灵魂深处,你会有一种唠叨和想要以另一个业余者为代价来宣扬自己。我在英语论坛上没有遇到过这种情况,尽管我经常在那里写作。知道这一点后,我通常尽量不对这种言论作出反应,但如果德米特里,你想在口舌之争中嬉戏,我会给你带来乐趣,让你一头扎进自己的发泄中。 切断苍蝇,宝贝。 Dmitry Fedoseev 2020.11.01 15:23 #13 Vladimir Simakov:你为什么不直接向那个人展示这个决定呢?) UPD: bezgovna - 拼写无sh...t )))) 好吧,你只是在享受我不知道的想法。因此,只要继续在自己的辉煌的高潮中打压自己。 Vladimir Simakov 2020.11.01 16:24 #14 Dmitry Fedoseev: 哦,伙计,孩子们已经离不开垫子了。 关于密封垫。 单子的好处是什么?因为你可以存储状态,用复杂的逻辑处理日志,等等,同时在主代码中保持一切简洁。这样一来,适当的项目架构就被创造出来了,代码本身也变得更加可读。 PS。否则,是的,一切都要靠粉丝。社区中的许多人都喜欢用匈牙利语记号的意大利面条代码,在每一个刻度 上尝试所有的订单和位置(都是一般的)的受虐狂是很好的)。 Alexandr Andreev 2020.11.01 16:48 #15 很久以前(很多年前)....已经有一个关于最佳日志的主题,是在一个单独的主题中还是在另一个主题中,我不记得了。 但这是以一种稍微不同的方式进行的。在那里,他们改变了函数名称,并在那里添加了各种函数名称的宏行,等等。然后你就可以临时改变处理程序了 类似于 "#definPRINT prepare; Print" 和印刷品本身的风格 void Print (string a;string a1="";string a2="";...... //很遗憾你不能直接写...a[] { 打印(我们的准备,论据)。 } 这个定义本来可以作为一个普通的打印处理,通过改变处理程序,我们可以将数据写入文件或在屏幕上显示。参数的数量可以是任何(最多64个)//对于那些还没有学会的人来说。 顺便说一下,这也是作者的部分 要求))。 Алексей Тарабанов 2020.11.01 22:01 #16 Dmitry Fedoseev: 但是,不幸的是,你不会打动那些傻瓜。 你愿意吗? 对不起,但在我的记忆中,当Assembler还在使用的时候,宏扩展(macro )是一个工具,它允许你在编译前用它的代码替换它的定义。 只是,用Assembler编程有点麻烦,而且没有子程序。 在MQL中编程是比较舒服的。 问题:你是写一个子程序,还是只写Print("No sheet");或者在预处理程序中预先定义的东西更合适? Dmitry Fedoseev 2020.11.01 22:50 #17 Алексей Тарабанов:(1) 你愿意吗?对不起,但在我的记忆中,当Assembler还在使用的时候,宏扩展(macro )是一个工具,它允许你在编译前用它的代码替换它的定义。(2) 很简单,用Assembler编程相当麻烦,而且那里没有子程序。在MQL中编程是比较舒服的。(3) 问题:你是否觉得写一个子程序,或者只是Print("No sheet");或者在预处理程序中预先定义一些东西,会更舒服? 1)这个问题不适合我。 2)在汇编程序中有子程序。 3)我更愿意不在那些不值一提的问题上胡说八道。 Vladimir Simakov 2020.11.02 06:14 #18 Alexandr Andreev:很久以前(很多年前)....已经有一个关于最佳日志的主题,是在一个单独的主题中还是在另一个主题中,我不记得了。但这是以一种稍微不同的方式进行的。在那里,他们改变了函数名称,并在那里添加了各种函数名称的宏行,等等。然后你就可以临时改变处理程序了类似于 "#defin PRINT prepare; Print"和印刷品本身的风格void Print (string a;string a1="";string a2="";...... //很遗憾你不能直接写...a[]{打印(我们的准备,论据)。}这个定义本来可以作为一个普通的打印处理,通过改变处理程序,我们可以将数据写入文件或在屏幕上显示。参数的数量可以是任何(最多64个)//对于那些还没有学会的人来说。顺便说一下,这正是 作者的要求))。 字符串aN=""和63次--这是个煞笔。 让我解释一下。 字符串是一个对象,它是wchar_t*的一个封装。 通过使字符串=""63次,你做了以下工作:为63个字符串对象分配内存(在这种情况下在堆栈中),调用参数化构造函数(63次),在堆中分配一个一定大小的wchar_t*缓冲区(就在那里),其前两个字节被初始化为0x0000(是的,这也发生了63次)。 如果你这样做,让string=NULL,在这种情况下,你将节省在堆中分配不必要的内存的主要成本。 UPD。不,我错了,如果操作得当,堆中不会有内存分配。 。 Dmitry Fedoseev 2020.11.02 14:17 #19 Vladimir Simakov:字符串aN=""和63次是猛烈的。让我解释一下。 string是一个对象,是wchar_t*的封装器。 通过使字符串=""63次,你做了以下工作:为63个字符串对象分配内存(在这种情况下在堆栈中),调用参数化构造函数(63次),在堆中分配一个一定大小的wchar_t*缓冲区(就在那里),其前两个字节被0x0000初始化(是的,这也发生63次)。 如果你这样做,让string=NULL,在这种情况下,你将节省在堆中分配不必要的内存的主要成本。 UPD。不,我错了,如果操作得当,堆中不会有内存分配。 。 你又一次不明白我们在谈论什么。亚历山大写道,通过定义取代Print()(以避免爬遍整个文件,寻找所有的打印内容)。这样做的问题是,Print可以有几个参数,尽管没有人把它们区分为参数--只是一个由逗号连接的字符串。因此,为了提供一个标准Print函数的替代品,你需要一个接受64个可选参数的函数(以完全匹配Print()函数)。而且你需要它在日志前添加一些数据,也许是一个带箭头(==>)的条带,以便更好地观察,也许是一个行号、日期或输出到一个文件。根本没有人可以关心这个速度,因为它是在特别复杂的搜索错误的情况下进行的,然后再删除。 Alexandr Andreev 2020.11.02 15:17 #20 string _info; void _Print(string s,string s1="",string s2="",string s3="",string s4="",string s5="",string s6="",string s7="",string s8="")//..... { string ss; StringConcatenate(ss,s,s1,s2,s3,s4,s5,s6,s7,s8);//.... //Comment(_info,ss); Print(_info,ss); } #define Print _info=__FILE__+" line "+__LINE__ +" "+__FUNCSIG__+" Print: "; _Print void OnStart() { Templ(); } void Templ() { Print("Error, a!=",5," and other....",3,4,5); Print("a=",5); Print("Hi"); } 每个人似乎都明白..... 因此,这是为那些刚刚开始工作的人准备的....。 我们可以将其全部包裹在一个统计类中,并返回一个引用,然后将其余部分均衡化,因为这个方法在与if (a!=5)Print(a)工作时有一个减号;这将不起作用,你应该总是写if (a!=5) {Print(a);},在类中你可以纠正这个时刻,但我太懒了)),一般来说,这似乎都是在历史的档案馆里 按照类的方式,通过静态方法初始化我们的数据,并结合运算符调用我们的print....。那么如果(a!=5)Print(a); 它将工作 123456789...12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你!)
本质上。
这就是我在班级选项上的遗留问题。即使是像#define参数化这样的基本东西,如果没有日常使用,也会很快被遗忘。
关于神经。
天啊,这里的人都很敏感;你可以问一个没有暗示的问题,没有冒犯或侮辱的意图,但是没有,在一个未被承认的天才的灵魂深处,你会有一种唠叨和想要以另一个业余者为代价来宣扬自己。我在英语论坛上没有遇到过这种情况,尽管我经常在那里写作。知道这一点后,我通常尽量不对这种言论作出反应,但如果德米特里,你想在口舌之争中嬉戏,我会给你带来乐趣,让你一头扎进自己的发泄中。
切断苍蝇,宝贝。
你为什么不直接向那个人展示这个决定呢?)
UPD: bezgovna - 拼写无sh...t ))))好吧,你只是在享受我不知道的想法。因此,只要继续在自己的辉煌的高潮中打压自己。
哦,伙计,孩子们已经离不开垫子了。
关于密封垫。
单子的好处是什么?因为你可以存储状态,用复杂的逻辑处理日志,等等,同时在主代码中保持一切简洁。这样一来,适当的项目架构就被创造出来了,代码本身也变得更加可读。
PS。否则,是的,一切都要靠粉丝。社区中的许多人都喜欢用匈牙利语记号的意大利面条代码,在每一个刻度 上尝试所有的订单和位置(都是一般的)的受虐狂是很好的)。
很久以前(很多年前)....已经有一个关于最佳日志的主题,是在一个单独的主题中还是在另一个主题中,我不记得了。
但这是以一种稍微不同的方式进行的。在那里,他们改变了函数名称,并在那里添加了各种函数名称的宏行,等等。然后你就可以临时改变处理程序了
类似于 "#definPRINT prepare; Print"
和印刷品本身的风格
void Print (string a;string a1="";string a2="";...... //很遗憾你不能直接写...a[]
{
打印(我们的准备,论据)。
}
这个定义本来可以作为一个普通的打印处理,通过改变处理程序,我们可以将数据写入文件或在屏幕上显示。参数的数量可以是任何(最多64个)//对于那些还没有学会的人来说。
顺便说一下,这也是作者的部分 要求))。
但是,不幸的是,你不会打动那些傻瓜。
你愿意吗?
对不起,但在我的记忆中,当Assembler还在使用的时候,宏扩展(macro )是一个工具,它允许你在编译前用它的代码替换它的定义。
只是,用Assembler编程有点麻烦,而且没有子程序。
在MQL中编程是比较舒服的。
问题:你是写一个子程序,还是只写Print("No sheet");或者在预处理程序中预先定义的东西更合适?
(1) 你愿意吗?
对不起,但在我的记忆中,当Assembler还在使用的时候,宏扩展(macro )是一个工具,它允许你在编译前用它的代码替换它的定义。
(2) 很简单,用Assembler编程相当麻烦,而且那里没有子程序。
在MQL中编程是比较舒服的。
(3) 问题:你是否觉得写一个子程序,或者只是Print("No sheet");或者在预处理程序中预先定义一些东西,会更舒服?
1)这个问题不适合我。
2)在汇编程序中有子程序。
3)我更愿意不在那些不值一提的问题上胡说八道。
很久以前(很多年前)....已经有一个关于最佳日志的主题,是在一个单独的主题中还是在另一个主题中,我不记得了。
但这是以一种稍微不同的方式进行的。在那里,他们改变了函数名称,并在那里添加了各种函数名称的宏行,等等。然后你就可以临时改变处理程序了
类似于 "#defin PRINT prepare; Print"
和印刷品本身的风格
void Print (string a;string a1="";string a2="";...... //很遗憾你不能直接写...a[]
{
打印(我们的准备,论据)。
}
这个定义本来可以作为一个普通的打印处理,通过改变处理程序,我们可以将数据写入文件或在屏幕上显示。参数的数量可以是任何(最多64个)//对于那些还没有学会的人来说。
顺便说一下,这正是 作者的要求))。
字符串aN=""和63次--这是个煞笔。
让我解释一下。
如果你这样做,让string=NULL,在这种情况下,你将节省在堆中分配不必要的内存的主要成本。
UPD。不,我错了,如果操作得当,堆中不会有内存分配。
。
字符串aN=""和63次是猛烈的。
让我解释一下。
如果你这样做,让string=NULL,在这种情况下,你将节省在堆中分配不必要的内存的主要成本。
UPD。不,我错了,如果操作得当,堆中不会有内存分配。
。
你又一次不明白我们在谈论什么。亚历山大写道,通过定义取代Print()(以避免爬遍整个文件,寻找所有的打印内容)。这样做的问题是,Print可以有几个参数,尽管没有人把它们区分为参数--只是一个由逗号连接的字符串。因此,为了提供一个标准Print函数的替代品,你需要一个接受64个可选参数的函数(以完全匹配Print()函数)。而且你需要它在日志前添加一些数据,也许是一个带箭头(==>)的条带,以便更好地观察,也许是一个行号、日期或输出到一个文件。根本没有人可以关心这个速度,因为它是在特别复杂的搜索错误的情况下进行的,然后再删除。
每个人似乎都明白.....
因此,这是为那些刚刚开始工作的人准备的....。
我们可以将其全部包裹在一个统计类中,并返回一个引用,然后将其余部分均衡化,因为这个方法在与if (a!=5)Print(a)工作时有一个减号;这将不起作用,你应该总是写if (a!=5) {Print(a);},在类中你可以纠正这个时刻,但我太懒了)),一般来说,这似乎都是在历史的档案馆里
按照类的方式,通过静态方法初始化我们的数据,并结合运算符调用我们的print....。那么如果(a!=5)Print(a); 它将工作