Android - Как получить данные с сервера?

Размерный «трюк» - это лучший способ, который я знаю, с одним маленьким, но (для меня это серьезный питомец) важное изменение в использовании круглых скобок.

Поскольку запись в Википедии делает clear, C sizeof не является функцией; это оператор. Таким образом, он не требует скобок вокруг своего аргумента, если аргумент не является именем типа. Это легко запомнить, так как он делает аргумент похожим на выражение cast, которое также использует скобки.

So: Если у вас есть следующее:

int myArray[10];

Вы можете найти количество элементов с таким кодом:

size_t n = sizeof myArray / sizeof *myArray;

Это, для меня, намного легче, чем альтернатива с круглыми скобками. Я также предпочитаю использовать звездочку в правой части деления, поскольку она более кратка, чем индексация.

Конечно, это тоже время компиляции, поэтому нет необходимости беспокоиться о том, разделение, влияющее на производительность программы. Поэтому используйте эту форму, где бы вы ни были.

Всегда лучше использовать sizeof для фактического объекта, если он у вас есть, а не на типе, поскольку вам не нужно беспокоиться о том, чтобы сделать ошибку и указать неверный тип.

Например, скажем, у вас есть функция, которая выводит некоторые данные в виде потока байтов, например, по сети. Назовем функцию send() и сделаем в качестве аргументов указатель на отправляемый объект и количество байтов в объекте. Итак, прототип становится:

void send(const void *object, size_t size);

И тогда вам нужно отправить целое число, поэтому вы его кодируете следующим образом:

int foo = 4711;
send(&foo, sizeof (int));

Теперь вы ввели тонкий способ стрельбы в ногу, указав тип foo в двух местах. Если кто-то меняет, а другой - нет, код прерывается. Таким образом, всегда делайте это так:

send(&foo, sizeof foo);

Теперь вы защищены. Конечно, вы дублируете имя переменной, но это имеет высокую вероятность взлома способом, который может обнаружить компилятор, если вы его измените.

1
задан Jonas 14 December 2011 в 01:37
поделиться

1 ответ

Я бы порекомендовал вам реализовать веб-службу на сервере. И используйте веб-службу в качестве слоя между базой данных SQL Server и приложением Android.

Прочтите о Трехуровневой архитектуре .

2
ответ дан 3 September 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: