Anonymní profil Vojta – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Vojta – Programujte.comAnonymní profil Vojta – Programujte.com

 

Příspěvky odeslané z IP adresy 89.102.19.–

Hans
C / C++ › Funkce která odřízne x desei…
10. 3. 2025   #392256

#2 Kit
Mě celkem nevadí, že to není přesně 99,90, ale 99,90XXX, dokonce uvádím, že ve výsledku 99,90 nebude, úloha zni, najít číslo nejbližší 99,90. Zcela přesně má funkce postupně vychrlí 100000 výsledků z intervalu 0.0 - 100.0 a já z nich chci vybrat 1001, které budou nejblíže 0.00, 0,10, 0.20, ... 99.80, 99.90, 100,00, přičemž ně dokonce ani nezajímá onen výsledek, ale jen jeho pořadové čilo, které reprezentuje čas v časové doméně. Nicméně na to musím provést porovnání. Holt to pořeším vynásobením 100x, normálně bych to tak řešil, ale je to tak trochu didaktická úloha  a chtěl jsme se tomu vyhnout.

Hans
C / C++ › Funkce která odřízne x desei…
10. 3. 2025   #392254

Mám funkci, která vrací výsledek jako číslo double v intervalu 0,0 - 100,0, mě zajímají pouze výsledky jako 99,90 ale takovy tam nebude protože nejbližší výsledek bude něco jako 99,90143. Otázka tedy je zda existuje knihovní funkce, která umí u double odříznout vše od řekněme třetího desetinného místa?
Nebo musím použít metodu vynásobit výsledek 100x a odříznout desetinná místa jako celek.

Vojta
C / C++ › Jak vytvořit ve Visual Studi…
30. 9. 2024   #392090

#1 Vojta
Ano to samzř#2 Jerry

Ano jak jsem již uvedl v úvodním příspěvku to funguje a já to používám, problém je, že na to sem tam zapomenu a pak napíšete třeba něco jako

 char *sql;
 sql = "CREATE TABLE Funance("  \
      "ID INT PRIMARY KEY     NOT NULL," \
      "TEMPN          TEXT    NOT NULL," \
      "T1             INT     NOT NULL," \
      "T2             INT," 
      "TR             REAL );";

v C je to OK v C++ ne , tak na to čumite a než vám dojde o co go lámete si hlavu kde je problém.

Kdy šlo o nějaký obskurní jazyk řeknu OK, ale C je snad i dnes základní jazyk v řadě systémů, to by těm indickým šmejdům z MS upadli ruce, aby jeho podpora byla ve VS včetetně šablon projektů ? z mého pohledu C poúžívá více lidí než nějaké  F#.

Vojta
C / C++ › Jak vytvořit ve Visual Studi…
30. 9. 2024   #392087

Dělám věci pro MCU , proto v C, ale větší matematické a algoritmické věci se snažím nejprve odladit na PC a píšu to ve Visual studiu 2022 zpravidla jako konzolovou aplikaci pro windows. Problém je že ve VS není možnost (já jí nenašel) vygenerovat projet pro Windows v C , jen v C++, ano stačí přejmenovat soubor z .cpp na .c ,ale na to občas zapomenu a pak se divím, že mi nepřekládá některé věc, které jsou v C, ale C++ je nepodporuje.

Není nějaká možnost jak VS donutit generovat projekt v C?

Beránek
C / C++ › gcc + Visual Studio identifi…
20. 7. 2023   #391449

To co vidíte jako kód jsou řádky 222 až 224 v hlavičkovém souboru stdio.h , což je standardni knihovna C. Zde verze z gcc v12.2  (debin 12).

Ono se to u čehokoliv o začíná lomítky blbě pozná, ale  

extern char *tempnam (const char *x

je celkem klasika a základní klíčová slova jazyka C .

Jinak problém vyřešen, v parametrech C /C++ projektu byl špatně definován překladač a i c tak překládal c++, po přepnutí na C překladač se to už přeloží, sice neslinkuje, ale to chce jen nadefinovat cesty pro linker.

Beránek
C / C++ › gcc + Visual Studio identifi…
20. 7. 2023   #391446

Pokouším se rozchodit psaní programů pro Linux ve Visual Studiu. Včera jsem celkem bez problémů vše rzhdil tak, že jsem dokázal přeložit Hello Word z VS na debianu 12.

Dnes po doplnění cest na #include, přeložím i komplikovanější věci. Nicméně narazil jsme na proglem spojeny s stdio.h.  

Hlsá mi to chybu E0020    identifikátor "__builtin_free" není definovaný.    usr\include\stdlib.h

 jeden obrázek za 1000 slov

Připojen obrázek.

Poradíte?

C / C++ › Plnění proměnných po bytech?
5. 1. 2023   #390775

#3 Maděj
pokud struktura Data bude obsahovat

unsigned int x;
unsigned int y;

a pdata bude ukazatel na strukturu

unsigned int x = 123;
memcpy(pDara, &x, 4);
memcpy((unsigned char*) pdata+4, &x, 4);

první memcpy nakopiruje 123 do data.x a druhe do data.y

(unsigned char*)  přetypovalo ukazatel na ukaztel na uchar a jeho zvýšenín o 4 se ikaztel posune o 4 byty,

C / C++ › Typedef v C ?
2. 1. 2023   #390761

__attribute__ je sice nejvíce profláklý mechanizmus z GNU, tedy gcc, ale ne neni to  gcc.

Je to pro Clang/LLVM tedy dnes hlavní firemni překladač ARM.
Agoritmus ladim ve Visual Studiu a tam použivam #pragma( pack(push, 1) )

Co to děla snad i tuším, jde o to, že ve struktuře je sice 5x  uint8_t tedy vlastně 40bitů, ale v paměti to zabere jen 32bitů, což je přesně o co mi jde. V paměti se vytvoří pole těchto struktur a to je po naplnění odesláno přes DMA a SPI kamsi a to jde jen kdy to má správnou strukturu protože to končí v hw registrech IC. 
 

C / C++ › Typedef v C ?
1. 1. 2023   #390758

typedef struct {
      uint8_t  staticS             : 3;
      uint8_t  globalS            : 5;
      uint8_t  b                      : 8;
      uint8_t  w1                    : 8;
      uint8_t  w2                    : 8;
}__attribute__((__packed__)) Fram;

Pomoci typeDef jsem vytvořil strukturu, která vlastně představuje 32 bitovou proměnou, v reálu tedy kopii  něčeho jako hw registr.

Fungovat to funguje,  použití

Fram fram;
fram.staticS   =    0b111;
fram.w1   =    128;

Proč to sem vůbec píšu? fram.staticS   nemůže být nic jiného než 0b111 a řádek fram.staticS   =    0b111; je nadbytečný, Libilo by se mi pokud by staticS   byla konstanta o hodnotě  0b111.

Jde to nějak?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032025 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý