我总是看到使用宏比使用函数更好的示例和情况.
有人可以通过一个例子向我解释宏与功能相比的缺点吗?
我正在研究TensorFlow以及如何使用它,即使我不是神经网络和深度学习(只是基础知识)的专家.
以下教程中,我不理解三个优化器之间的实际差异.我看看API,我理解原则,但我的问题是:
1.何时优先使用一个而不是其他一个?
2.知道有重要的区别吗?
while和until之间真正的区别是什么?
我想知道是否可以使用"until"进行越来越多的循环,然后使用while循环.
因为如果我这样做,我就看到了
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER+=1
done
Run Code Online (Sandbox Code Playgroud)
还有这个
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done
Run Code Online (Sandbox Code Playgroud)
他们运作良好.
但如果我做相反的事情,例如:
COUNTER=20
while [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done
Run Code Online (Sandbox Code Playgroud)
脚本没有结束.
这是否意味着我们不能在bash中进行一段时间的反向循环?
我对使用memmove()有两个疑问:
我希望我能以一种好的方式解释我的怀疑.
编辑:我必须从数组中删除一个元素,然后我想在左侧移动已删除的元素的以下元素.
我在C中有这段代码:
void f(void *x) {
printf(">>> %p\n", x);
}
int main() {
f NULL;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为是NULL的定义,但我想解释一下我的疑问.
我正在开发一个卷积神经网络,用于基于三个自己的类进行图像识别.我建立了一个基于AlexNet的模型来训练.我想知道两件事:
tf.train.exponential_decay
用来进行衰变吗?很少有人赞赏这些例子.谢谢
我是bash的新手,我正在学习它,而且我怀疑使用$@
和之间的真正区别S*
.
我在这里红色Bash特殊参数
我知道两者都扩展到位置参数,但差异发生在双引号内.顺便说一句"$@" = "$1" "$2"..."$n"
可能不同于"S*" = "$1$2...$n".
我尝试用一个简单的脚本来理解它:
if [ $# -gt 0 ]; then
echo "Your command line contains $# arguments"
else
echo "Your command line contains no arguments"
exit fi
echo "Params are: "
echo $@
echo $*
echo "$@"
echo "$*"
Run Code Online (Sandbox Code Playgroud)
如果我像这样在终端中执行我的脚本 ~./my_script par1 par2 par3
结果总是一样的:
Params are:
par1 par2 par3
par1 par2 par3
par1 par2 par3
par1 par2 par3
Run Code Online (Sandbox Code Playgroud)
也许我不明白这两个特殊变量的实际用途以及我的例子是否正确.我想用一个很好的例子来弄清楚这一点.
我想解析一个字符串,我使用strsep
函数:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[] = "Marco:Q:2F7PKC";
char *token1, *token2, *token3;
char *r = malloc(30);
strcpy(r, str);
token1 = strsep(&r, ":");
token2 = strsep(&r, ":");
token3 = strsep(&r, ":");
printf("tok1 = %s\n", token1);
printf("tok2 = %s\n", token2);
printf("tok3 = %s\n", token3);
free(r);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该函数完成了它的工作,但是如果我启动valgrind,分配的字符串char * r
不会正确释放(肯定会丢失:1个块中的30个字节).
我想知道为什么以及是否有其他方法可以做同样的事情,也许没有呼叫strsep.
我打电话给valgrind valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./a.out
我正在学习Bash,我看到了这个形式
C =示例
回声"$ C"
给出相同的表格结果
C = "示例"
echo $ C.
我想知道是否更好地将""放在变量的赋值中或者在$之后.或者如果它无动于衷.或者如果一个人认为比另一个人"更美丽".
我在Python中有这个函数:
def Rotate_Vector(vector, axis, direction):
Run Code Online (Sandbox Code Playgroud)
其中vector是一个由3个元素组成的元组(每个元素代表向量在笛卡尔轴上的三个坐标x,y,z),axis是一个轴的坐标,direction是一个整数,表示顺时针或逆时针运动。
我想在我的函数中控制输入参数是否正确:
我想知道在函数中进行这些控制(类型、值和元素数量)的正确方法。
编辑:
轴可以是 6 种可能的情况: (1,0,0) (-1,0,0) (0,1,0) (0,-1,0) (0,0,1) (0,0,- 1)
c ×4
bash ×3
function ×3
tensorflow ×2
memmove ×1
null ×1
parameters ×1
parsing ×1
python ×1
quoting ×1
strsep ×1
valgrind ×1
while-loop ×1