|
线程_启动_文本型 (到整数 (&欲执行的子程序), , , 频道ID, 用户ID, , , , , , , , )
相比于python 易语言里的变量只要有下面这个就算定义变量成功 而不需要像python那样每次调用变量前都必须 变量='' '' 也就是 频道ID='' ''
比如: 欲执行的子程序(频道ID,用户ID) 是不会出错的 即使没写 频道ID='' '' 也会自动定义 频道ID='' ''
但遇到 线程_启动_文本型 (到整数 (&欲执行的子程序), , , 频道ID, 用户ID, , , , , , , , ) 就会出问题了 我曾拆开精益模块看了下 线程_启动_文本型 源码 看不懂 (不好意思我是小白)一开始我以为是 线程_启动_文本型 内部封装了 线程_启动_整数型 (, , , , , , ) 然后通过写到内存传入参数 但实际上不是我也看不懂原理 我只知道 如果传入的参数 频道ID 不存在的话程序会崩溃报错:读取内存失败
‘依照我个人的测试发现 如果前面定义 频道ID='' '' 是不会报错 但问题来了 参数 频道ID 是个变量是个动态值我并不知道它是否为空 如果提前定义为 频道ID='' '' 那还怎么传递其它内容
说的好像有点啰嗦 简单理解是这样: 假设 json.解析(数据) 如果返回 频道ID=json.取文本(“频道ID”) 如果取到了就不会报错 如果没取到 线程_启动_文本型 (到整数 (&欲执行的子程序), , , 频道ID, 用户ID, , , , , , , , ) 就会报错:读取内存频道ID失败 我估摸着是因为 频道ID这个变量参数未定义导致的 也就是 频道ID 必须赋值后才能调用 线程_启动_文本型 ()哪怕是赋值空也没问题 但如果未赋值即使已经如下定义了该变量 但内存里并没有该变量地址的值 这时候 线程_启动_文本型 (频道ID) 就会因为 频道ID 这个变量在内存里不存在 而去读取内存这个变量而报错:读取内存频道ID地址失败崩溃 以我小脑瓜能想到的解决办法就是在 线程_启动_文本型()里调用读取传入的参数内存前先判断该参数变量在内存里是否存在 不存在则跳过不读取或直接定义 频道ID='' '' 但是看了下精益模块里的 线程_启动_文本型()源码 感觉看不懂所以也不知道咋改 所以只能来这里求助了 事实上:用 线程_启动 (, , ) 并不会有此报错 因为传入的参数都是已经明确提前写到内存的并不存在未写入的情况 那么 指针到文本 () 并不会因为读取不到内存而报错 至于我为啥喜欢用 线程_启动_文本型 () 因为简洁直接传入变量参数就行都不需要去读写内存但 线程_启动_文本型 () 会因为传入的变量未被赋值也就是内存里并未写入该变量值导致栈地址引起读取无效内存报错 崩溃程序
|
|