我一直认为在C中,所有变量都必须在函数的开头声明.我知道在C99中,规则与C++中的规则相同,但C89/ANSI C的变量声明放置规则是什么?
以下代码使用gcc -std=c89
和成功编译gcc -ansi
:
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 10; i++) {
char c = (i % 95) + 32;
printf("%i: %c\n", i, c);
char *s;
s = "some string";
puts(s);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
不应该在C89/ANSI模式下声明c
并s
导致错误吗?
我在https://github.com/aikiframework/json上有一个回购.在我的本地副本上,我使用该命令添加了一个子模块
git submodule add git@github.com:jcubic/json-rpc.git json-rpc
Run Code Online (Sandbox Code Playgroud)
然后我做了一个提交和推送,更改出现在GitHub上(我可以点击它).但是当我克隆回购时
git clone https://github.com/aikiframework/json.git
Run Code Online (Sandbox Code Playgroud)
子模块文件夹json-rpc为空.
我在这里错过了什么?我忘记了什么吗?为什么那个文件夹是空的?
这是我的960网格系统案例:
<div class="kundregister_grid_full">
<div class="kundregister_grid_1">ID</div>
<div class="kundregister_grid_1">Namn</div>
<div class="kundregister_grid_1">Anv.Namn</div>
<div class="kundregister_grid_1">Email</div>
<div class="kundregister_grid_1">Roll</div>
<div class="kundregister_grid_1">Aktiv</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的div组,用作表结构.
CSS说如下:
.kundregister_grid_1 {
display: inline-block;
float: left;
margin: 0;
text-align: center;
}
.kundregister_grid_1 {
width: 140px;
}
Run Code Online (Sandbox Code Playgroud)
不介意瑞典语命名.我希望div显示,即使它们没有值.
<div class="kundregister_grid_full">
<div class="kundregister_grid_1">ID</div>
<div class="kundregister_grid_1"></div>
<div class="kundregister_grid_1"></div>
<div class="kundregister_grid_1">Email</div>
<div class="kundregister_grid_1">Roll</div>
<div class="kundregister_grid_1">Aktiv</div>
</div>
Run Code Online (Sandbox Code Playgroud)
像这样,在这种情况下,两列中没有'Namn'和'Avn.Namn'.但是,当在chrome中运行它时,它们将被删除,并且不再按顺序推送其他div float:left
.因此,如果我在上面的相同div中有类别,则值将被置于错误的类别下.
我遇到了Java套接字API的一些问题.我正在尝试显示当前连接到我的游戏的玩家数量.很容易确定玩家何时连接.但是,确定玩家何时使用套接字API断开连接似乎不必要.
调用isConnected()
已远程断开的套接字似乎总是返回true
.同样,调用isClosed()
已远程关闭的套接字似乎总是返回false
.我已经读过,要实际确定套接字是否已关闭,必须将数据写入输出流并且必须捕获异常.这似乎是处理这种情况的一种非常不洁净的方式.我们不得不经常通过网络垃圾邮件垃圾邮件,以便知道套接字何时关闭.
还有其他解决方案吗?
以下是Sun Java教程的摘录:
一种开关用的工作原理
byte
,short
,char
,和int
原始数据类型.它还与枚举类型(在类和继承讨论)和少数特殊类作品是"包装"某些基本类型:Character
,Byte
,Short
,和Integer
(在简单的数据对象讨论).
必须有一个很好的理由为什么long
不允许原始数据类型.有人知道这是什么吗?
这个问题的动机是我在C/C++中实现加密算法(例如SHA-1),编写可移植平台无关的代码,并彻底避免未定义的行为.
假设标准化的加密算法要求您实现此目的:
b = (a << 31) & 0xFFFFFFFF
Run Code Online (Sandbox Code Playgroud)
where a
和b
是无符号的32位整数.请注意,在结果中,我们丢弃高于最低32位的任何位.
作为第一个天真的近似,我们可以假设int
在大多数平台上都是32位宽,所以我们写:
unsigned int a = (...);
unsigned int b = a << 31;
Run Code Online (Sandbox Code Playgroud)
我们知道这个代码无处不在,因为int
在某些系统上是16位宽,在其他系统上是64位,甚至可能是36位.但是使用stdint.h
,我们可以使用以下uint32_t
类型改进此代码:
uint32_t a = (...);
uint32_t b = a << 31;
Run Code Online (Sandbox Code Playgroud)
所以我们完成了,对吧?这就是我多年来的想法.... 不完全的.假设在某个平台上,我们有:
// stdint.h
typedef unsigned short uint32_t;
Run Code Online (Sandbox Code Playgroud)
在C/C++中执行算术运算的规则是,如果类型(例如short
)比类型更窄int
,那么int
如果所有值都适合,则它会变宽,unsigned int
否则.
假设编译器定义short
为32位(带符号)和int
48位(带符号).然后这些代码行:
uint32_t a = (...);
uint32_t b = a << …
Run Code Online (Sandbox Code Playgroud) 我在我的页面中有一个表,我使用colgroups以相同的方式格式化此列中的所有单元格,适用于背景颜色和所有.但似乎无法弄清楚为什么文本对齐中心不起作用.它没有将文本对齐居中.
例:
<table id="myTable" cellspacing="5">
<colgroup id="names"></colgroup>
<colgroup id="col20" class="datacol"></colgroup>
<colgroup id="col19" class="datacol"></colgroup>
<colgroup id="col18" class="datacol"></colgroup>
<thead>
<th> </th>
<th>20</th>
<th>19</th>
<th>18</th>
</thead>
<tbody>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
CSS:
#names {
width: 200px;
}
#myTable .datacol {
text-align: center;
background-color: red;
}
Run Code Online (Sandbox Code Playgroud) 我是Python面临问题的新手:如何在现有字符串中插入一些字段?
例如,假设我从任何包含以下内容的文件中读取了一行:
line = "Name Age Group Class Profession"
Run Code Online (Sandbox Code Playgroud)
现在我必须在Class字段之前的同一行中插入第3个Field(Group)3次.这意味着输出行应该是:
output_line = "Name Age Group Group Group Group Class Profession"
Run Code Online (Sandbox Code Playgroud)
我可以轻松地检索第三个字段(使用split
方法),但请告诉我插入字符串的最简单方法?
如何在MATLAB中用可选参数声明函数?
例如:function [a] = train(x, y, opt)
,opt必须是可选参数.
我知道Java-the-compilable-programming-language与Java-the-bytecode-format-for-JVM-execution不同.有一些例子在.class格式中有效但在.java源代码中没有,例如无构造函数的类和合成方法.
如果我们的手工工艺.class文件有保留的Java语言的关键字(例如int
,while
)作为类,方法或字段名,将在Java虚拟机接受它加载?
如果加载了类,是否意味着访问此类或成员的唯一方法是通过Java反射,因为该名称在Java编程语言中在语法上是非法的?
java ×3
c ×2
css ×2
html ×2
.class-file ×1
arguments ×1
c++ ×1
c89 ×1
css-tables ×1
declaration ×1
function ×1
git ×1
git-clone ×1
html-table ×1
jvm ×1
long-integer ×1
math ×1
matlab ×1
networking ×1
parameters ×1
python ×1
reflection ×1
sockets ×1
string ×1