我最近一直在玩C套接字,我设法在客户端和服务器之间交换文件。然而,我偶然发现了这个问题:当我的mac(64位)和覆盆子pi(32位)之间发送文件大小时,它失败,因为size_t
在两者之间是不同的。我通过切换到uint64_t
来解决。
size_t
这是一个不好的做法,uint64_t
在fread(),fwrite(),read(),write()的所有原型中定义, stat.size? <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Droppable - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
#chair { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: red; }
#cells { width: 11px; height: 11px; padding: 0.5em; float: left; margin: 10px; background-color: green; }
#table { width: 50%; float: left; }
#chairs{width: 50%; float: right;}
.dragged { width: 5px; height: 5px; padding: 0.5em; float: left; margin: 10px; background-color: blue ; }
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<div id = "table"></div>
<div id = "chairs"></div>
generate cells :
<input type="button" value="generate" onclick='generateZone();'></input>
generate chair :
<input type="button" value="chair" onclick='generateChairs();'></input>
<script type="text/javascript">
function generateZone(){
var theader = '<table>\n';
var tbody = "";
for(i= 0; i < 5; i++){
tbody += '<tr>';
for (j = 0; j< 5; j++){
tbody += '<td id = "cells" class = "freeCell" >';
tbody += i + ',' + j;
tbody += '</td>';
}
tbody += '</tr>\n';
}
var tfooter = '</table>';
document.getElementById("table").innerHTML = theader + tbody + tfooter;
$( "#table #cells" ).droppable({
drop : function(event, ui){
$(this)
.addClss("dragged")
.find("#chair");
}
});
}
</script>
<script type="text/javascript">
function generateChairs(){
var header = '<table>\n';
var body = "";
for(n= 0; n < 5; n++){
body += '<tr>';
for (m = 0; m< 5; m++){
body += '<td id = "chair" class = "AvailableCell" >';
body += n + ',' + m;
body += '</td>';
}
body += '</tr>\n';
}
var footer = '</table>';
document.getElementById("chairs").innerHTML = header + body + footer;
$( "#chairs #chair" ).draggable();
}
</script>
</body>
</html>
会变慢吗?答案 0 :(得分:3)
这不仅是良好的做法,而且最终是必要的。您无法在不同体系结构的不同计算机之间交换数据,也无法定义数据的格式和大小,并提供可移植的方式来解释它。这些固定宽度类型是为此目的而设计的。
在32位平台上使用uint64_t
而不是uint32_t
会更慢吗?可能是。值得注意的?怀疑。但你可以测量它并找出答案。