小编eru*_*orm的帖子

在C中是否有一个相当于sizeof()的东西?

应用于位域时,Sizeof()不起作用:

# cat p.c
  #include<stdio.h>
  int main( int argc, char **argv )
  {
    struct { unsigned int bitfield : 3; } s;
    fprintf( stdout, "size=%d\n", sizeof(s.bitfield) );
  }
# gcc p.c -o p
  p.c: In function ‘main’:
  p.c:5: error: ‘sizeof’ applied to a bit-field
Run Code Online (Sandbox Code Playgroud)

......显然,因为它无法返回浮点部分大小或其他东西.然而,它提出了一个有趣的问题.在C中是否有一个等价物来告诉你变量/类型中的位数?理想情况下,除了位域之外,它也适用于常规类型,如charint.

更新:

如果对于位域没有相当于sizeof()的语言,那么计算它的最有效方法是什么 - 在运行时!想象一下,你有依赖于此的循环,如果改变位域的大小,你不希望它们破坏 - 并且没有公平的作弊,并使位域大小和循环长度成为宏.;-)

c sizeof bit-fields

25
推荐指数
2
解决办法
2万
查看次数

正多边形的有效包装算法

我正在寻找一种打包算法,它将正多边形缩小为矩形和直角三角形.该算法应该尝试使用尽可能少的这种形状,并且应该相对容易实现(考虑到挑战的难度).

如果可能,这个问题的答案应该解释建议算法中使用的一般启发式方法.

algorithm math triangulation tesselation

7
推荐指数
1
解决办法
2913
查看次数

保存和恢复shell变量

我有两个shell脚本,我想从C程序调用.我希望在第一个脚本中设置的shell变量在第二个脚本中可见.这是它的样子:

灰:

var=blah
<save vars>
Run Code Online (Sandbox Code Playgroud)

b.sh:

<restore vars>
echo $var
Run Code Online (Sandbox Code Playgroud)

到目前为止,我提出的最好的是"set>/tmp/vars"的变体来保存变量,"eval $(cat/tmp/vars)"来恢复它们.当它试图恢复只读变量时,"eval"会窒息,所以我需要把它们弄出来.可以通过"declare -r"获得这些变量的列表.但是有一些变量没有出现在这个列表中,但仍然无法在eval中设置,例如BASH_ARGC.所以我也需要把它们弄出来.

在这一点上,我的解决方案感觉非常脆弱且容易出错,而且我不确定它是多么便携.有一个更好的方法吗?

c bash shell environment-variables

6
推荐指数
2
解决办法
2478
查看次数

git pull:权限被拒绝

我在桌面上创建了一个存储库并推送到github,然后将该存储库克隆到我的笔记本电脑进行开发,之后提交了更改并推送到github.现在回到我的桌面,我尝试'git pull'来获得我所做的所有更改,它显示错误消息:Permission denied(publickey)致命:远程端意外挂断.

怎么会发生这种情况?我最初从我的桌面推出存储库到github它知道遥控器,现在它抱怨权限被拒绝了吗?

git permissions version-control github

6
推荐指数
1
解决办法
1万
查看次数