Контрольная переменная и указательная переменная являются то же самое для машины (компилятор будет генерировать один и тот же машинный код).
Наиболее очевидные преимущества использования ссылочной переменной над переменной указателя в мои знания:
В приведенном ниже коде левая сторона использует ссылочную переменную, а правая сторона использует переменную указателя. Это то же самое для машины, но вы видите, что используемая ссылочная переменная позволяет вам немного печатать.
Reference variable Pointer variable
int a = 1; ~~~~~~ int a = 1;
int &b = a; ~~~~~~ int *b = &a;
b = 2; ~~~~~~ *b = 2;
cout << a << '\n' ~~~~~~ cout << a << '\n'
==============================================
2 ~~~~~~ 2
До сих пор я не знаю какой-либо опции clang-format для исключения файлов или каталогов. Но я делаю это, чтобы создать список файлов, которые я хочу обработать в сценарии bash, а затем вызвать для них clang-format:
#!/bin/bash
folder=.
exclude_folder=./submodule
format_files=`find "${folder}" -type f -path "${exclude_folder}" -prune
for file in $format_files
do
clang-format -i "$file"
done
Здесь волшебство выполняется с помощью опции обрезки в find , ( Как исключить каталог в find. command ).
Надеюсь, что это поможет вам хотя бы.