Если выполнить так, то работает, но вручную прописывать не подходит:
#!/bin/bash
z1=({0..3}); z2=({4..7}) #...
for((i = 1; i < 3; ++i)); do
declare -n a=z$i
FILES=()
for n in ${a[@]}; do
FILES[${#FILES[@]}]="/untitled/a/$i/$n.jpg"
done
montage -monitor "${FILES[@]}" -geometry +0+0 -tile 4x1 /untitled/b/$i.jpg
done
замена внутри файла
#! /bin/bash
subst()
{
eval "cat <<EOF
`cat \"$1\"`
EOF"
}
. ./config
subst ./dhcpd.conf.in > ./dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet ${NET}.0 netmask 255.255.255.0 {
option routers ${NET}.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.248.21;
option root-path "${NET}.1:/tftpboot/tensilica/rootfs/${ROOTFS}${NFS_MOUNT_OPTIONS}";
range dynamic-bootp ${NET}.128 ${NET}.128;
default-lease-time 21600;
max-lease-time 43200;
}
NET=192.168.135
ROOTFS=cp0_latest
NFS_MOUNT_OPTIONS=${NFS_MOUNT_OPTIONS},noac
IF_CONFIG="$NET.1 up"
CONFIG=debug-kc705-cp0_latest
KERNEL_IMAGE=uImage
Стоит ли сокращать код? И как?
struct
{
bool btn_state;
bool btn_flag;
bool hold_flag;
bool counter_flag;
bool isHolded_f;
bool isRelease_f;
bool isPress_f;
bool step_flag;
bool oneClick_f;
bool isOne_f;
} fl;
fl flags;
// ........
boolean GButton::isFlag(bool& flag) {
if (_tickMode) GButton::tick();
if (flag) {
flag = false;
return true;
} else return false;
}
boolean GButton::isPress() {
return isFlag(flags.isPress_f);
}
boolean GButton::isRelease() {
return isFlag(flags.isRelease_f);
}
boolean GButton::isClick() {
return isFlag(flags.isOne_f);
}
boolean GButton::isHolded() {
return isFlag(flags.isHolded_f);
}
switch(1){ case 1: double d = 1; //ошибка }
Почему нельзя инициализировать в case?
It is possible to transfer into a block, but not in a way that bypasses declarations
with initialization. A program that jumps from a point where a local variable with
automatic storage duration is not in scope to a point where it is in scope is ill-formed
unless the variable has POD type (3.9) and is declared without an initializer.
Как объявить их так, чтобы избежать подобных ошибок?
class someClass {
public:
void someClassTool();
int variableInClass = 5;
};
Someclass someclass;
void someUniversalTool()
{
int variable1 = someClass.variableInClass ;
//some additional code
}
void SomeClass::someClassTool()
{
someUniversalTool();
//some additional code
}
double * func(double *p, int a, int b) { double **p1 = &p; *(int*)p = a; *(int*)p++ = b; return *p1; }
void func(double *p, int a, int b)
{
*(int*)p = a;
*((int*)p + 1) = b;
}
void func(double *p, int a, int b)
{
memcpy(p, &a, 4);
memcpy((char *)p + 4, b, 4);
}
float del (float a, float b)
{
float res;
...
res = ...;
....
return res;
}
....
float result = del (num1, num2);
что делает "return res" во втором куске кода? То есть в переменную res записывается деление числа А и Б. А потом оно куда-то там возвращается..
1. Как влияет полином на CRC?
2. Существует ли возможность скорректировать алгоритм или полином так что бы результаты crc были определенном диапазоне? например от 0x0 - 0xafffffff.
3. Скорректируйте алгоритм так что бы результаты были всегда внутри диапазона 0x0-0xeffffffff
Подскажите как можно реализовать программно текстовый протокол SCPI?
Есть синонимы команд, есть не обязательные параметры, параметры могут быть, могут не быть, может быть сразу несколько. Как это всё обрабатывать и проверять не пытается ли пользовать ввести несуществующую команду?
gdb выдает следующее
char* command; while(strcmp(command, "exit") == 1);