Я бы использовал WCF для .NET 3.5 для этой задачи, он будет более масштабируемым. Я использую WCF для многих своих работ и безупречен. Хорошо, что вы можете делиться своими данными на любой платформе.
Согласно в соответствии со стандартом ISO C 1999 г. (C99),
size_t
представляет собой целое число без знака длиной не менее 16 бит (см. разделы 7.17 и 7.18.3 ).
size_t
- это беззнаковый тип данных , определенный несколькими стандартами C / C ++, например стандарт C99 ISO / IEC 9899, который определен вstddef.h
. 1 Его можно дополнительно импортировать, включивstdlib.h
, поскольку этот файл внутренне вложенный включаетstddef. h
.Этот тип используется для представления размера объекта. Библиотечные функции , которые принимают или возвращают размеры, ожидают, что они будут иметь тип или возвращаемый тип
size_t
. Кроме того, наиболее часто используемый оператор на основе компилятора sizeof должен возвращать постоянное значение , совместимое сsize_t
.
Как следствие, size_t
- это тип, который гарантированно содержит любой индекс массива.
На странице руководства для types.h указано:
size_t должен быть целым числом без знака
size_t
- беззнаковый тип. Таким образом, он не может представлять отрицательные значения (<0). Вы используете его, когда что-то считаете, и уверены, что это не может быть отрицательным. Например, strlen ()
возвращает size_t
, потому что длина строки должна быть не менее 0.
В вашем примере, если ваш индекс цикла будет всегда больше 0, может иметь смысл использовать size_t
или любой другой тип данных без знака.
Когда вы используете объект size_t
, вы должны убедиться, что во всех контекстах, в которых он используется, включая арифметику, вам нужны неотрицательные значения. Например, предположим, что у вас есть:
size_t s1 = strlen(str1);
size_t s2 = strlen(str2);
и вы хотите найти разницу длин str2
и str1
. Вы не можете сделать:
int diff = s2 - s1; /* bad */
Это потому, что значение, присвоенное diff
, всегда будет положительным числом, даже когда s2
int
(или long long
) для s1
и s2
.
В C / POSIX есть некоторые функции, которые могут / должны использовать size_t
, но этого не делают по историческим причинам. Например, второй параметр для fgets
в идеале должен быть size_t
, но это int
.