int main()
{
int a;
void *p;
p = &a;
printf("%ld\n",(long)p);
p = p+1;
printf("%ld\n",(long)p);
}
Run Code Online (Sandbox Code Playgroud)
在这个程序中,p+1
只是将p的值递增1.我知道void pointer arithmetic
是不可能的C
,所以GCC
隐式地这样做.如果是的话,那就是它char pointer
.另外,dereferencing
如果void指针隐式执行指针运算,为什么不可能使用void指针.
对于下面的脚本,我期待输出 msg_y and msg_z
.但它是印刷品msg_x and msg_z
.有人可以向我解释发生了什么事吗?
#!/bin/bash
set -x
vr=2
echo $vr
if [ $vr > 5 ]
then
echo "entered 1st if"
echo "msg_x"
echo "out of 1st if"
if [ $vr < 8 ]; then
echo "in of 2nd if"
echo "msg_y"
else
echo "msg_z"
fi
else
if [ $vr > 1 ]; then echo "msg_y"
else echo "msg_z"
fi
fi
Run Code Online (Sandbox Code Playgroud) 如何创建计时器?类似于 Visual Basic 中的计时器;您设置了一个间隔,如果启用了计时器,它会一直等到时间到。
我不想使用现有的库,因为我想知道它是如何工作的。
所以..我只是希望有人能解释我定时器是如何工作的,也许给我一个代码示例来创建我自己的代码 - 如果它不是太先进。
编辑:我想为 linux 系统创建一个。
我想做点什么,但我不知道该怎么做.我有一个23 Mo的文件:
: (blah
:aaaaaaaaaaaaaaaaaaaa
(bbbbbbbbbbbbbbbbbbbb
: (bloh
cccccccc
dddddddd
...
Run Code Online (Sandbox Code Playgroud)
等等.我喜欢做的是删除所有行跳转"\n",除非\n后跟":("
所以最终文件将是:
: (blah :aaaaaaaaaaaaaaaaaaaa (bbbbbbbbbbbbbbbbbbbb
: (bloh cccccccc dddddddd
...
Run Code Online (Sandbox Code Playgroud)
我有几个想法要做,第一个是:
- 用sed 删除所有"\n"
- 替换所有":(" by "\n :("
但问题是文件是23MO我不知道如何在23mo的一行文件上管理这个.
第二个想法,但我仍然不知道如何做,是:
- 删除每个"\n",除非它匹配模式"\n :("
我不知道如何.
我只限于bash perl sed grep和awk作为ressource.
我真的很想得到你的意见.
祝你今天愉快.
我重构一些代码,我又决定再更换一个名字,让我们说foo
的bar
.它们出现在多个.cc
和.h
文件中,所以我想改为:
Foo key();
Run Code Online (Sandbox Code Playgroud)
至
Bar key();
Run Code Online (Sandbox Code Playgroud)
就是这样,替换所有出现Foo
的Bar
Unix中.并且文件位于同一目录中.我想过
sed -e {'s/Foo/Bar/g'}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否会起作用.
我真的不能得到这一个.
文件A有这个:
1.1.1.1
2.2.2.2
3.3.3.3
Run Code Online (Sandbox Code Playgroud)
等等..
文件B将始终具有完全相同的行数,并且它们始终对应:
oneoneoneone
twotwotwotwo
3ee3ee3ee3ee
Run Code Online (Sandbox Code Playgroud)
我想将文件A附加到文件B,所以它看起来像:
1.1.1.1 oneoneoneone
2.2.2.2 twotwotwotwo
3.3.3.3 3ee3ee3ee3ee
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但不应该像它应该的那样:
对于`cat/tmp/fileB中的z; 做sed"s /(.*)/\1 $ z /"</ tmp/fileA >>/tmp/c;完成
有什么建议?
我有一个提交我的网站:
commit 7745ace83eff751025526b7a998406e5b5d1873d
Merge: 9e79649 09e570a
Date: Thu Feb 19 17:07:03 2015 -0300
Merge branch 'desarrollo' of git+ssh://192.168.1.200/home/git/project into dev
commit 9e79649a64ef9925655167a8e237d5fd36fad51e
Date: Thu Feb 19 17:06:24 2015 -0300
Comment. Blah... Blah...
dir/file.inc | 1 +
db/file2.sql | 327 ++++++-----------------------------------
file3.php | 7 +-
file4.php | 1 +
admin/file5.php | 8 +
admin/file6.php | 6 +-
admin/file7.php | 12 +-
7 files changed, 78 insertions(+), 284 deletions(-)
Run Code Online (Sandbox Code Playgroud)
如果更改提交7745ace83eff751025526b7a998406e5b5d1873d,则该站点被破坏.在提交9e79649a64ef9925655167a8e237d5fd36fad51e中,该站点没有该错误.
如何知道提交7745ace83eff751025526b7a998406e5b5d1873d中哪些文件发生了变化?
我发现自己经常做一些愚蠢的事情,比如:
cmd $( echo foo{1,2,3} | tr ' ' , )
Run Code Online (Sandbox Code Playgroud)
当我想调用cmd foo1,foo2,foo3
. 我希望能够做一些类似的事情:
OFS=, ; cmd foo{1,2,3}
强制大括号扩展给我一个逗号分隔的列表。有这样的功能可用吗?