C

  • Find den højeste ordens bit i C

    Fra Hackers Delight: int hibit(unsigned int n) { n |= (n >> 1); n |= (n >> 2); n |= (n >> 4); n |= (n >> 8); n |= (n >> 16); return n - (n >> 1); } Denne version er til 32-bit ints, men logikken kan udvides til 64-bit eller højere.

    LÆS
  • C:Hvad er forskellen mellem ++i og i++?

    ++i vil øge værdien af ​​i , og returner derefter den øgede værdi. i = 1; j = ++i; (i is 2, j is 2) i++ vil øge værdien af ​​i , men returner den oprindelige værdi, i holdes, før den øges. i = 1; j = i++; (i is 2, j is 1) For en for sløjfe, enten virker. ++i synes mere almindeligt, mås

    LÆS
  • Er der en ydelsesforskel mellem i++ og ++i i C?

    Resumé:Nej. i++ kunne potentielt være langsommere end ++i , siden den gamle værdi af i skal muligvis gemmes til senere brug, men i praksis vil alle moderne compilere optimere dette væk. Vi kan demonstrere dette ved at se på koden for denne funktion, begge med ++i og i++ . $ cat i++.c extern void g

    LÆS
  • Hvad er den bedste gratis hukommelseslækagedetektor til et C/C++-program og dets plug-in DLL'er?

    Jeg bruger personligt Visual Leak Detector, selvom det kan forårsage store forsinkelser, når store blokke er lækket (den viser indholdet af hele den lækkede blok). Hvis du ikke ønsker at rekompilere (som Visual Leak Detector kræver) vil jeg anbefale WinDbg, som er både kraftfuld og hurtig (selvom

    LÆS
  • Sådan skifter du et array af bytes med 12-bit

    Hurra for pointer! Denne kode fungerer ved at se fremad 12 bits for hver byte og kopiere de korrekte bits fremad. 12 bit er den nederste halvdel (nybble) af den næste byte og den øverste halvdel af 2 bytes væk. unsigned char length = 10; unsigned char data[10] = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x

    LÆS
  • Hvad er den hurtigste måde at bytte værdier i C?

    Nummer 2 bliver ofte citeret som værende den kloge måde at gøre det på. Det er faktisk højst sandsynligt langsommere, da det slører programmørens eksplicitte mål - at bytte to variable. Dette betyder, at en compiler ikke kan optimere den til at bruge den faktiske assembler-ops til at bytte. Det foru

    LÆS
  • Hvordan bestemmer jeg størrelsen af ​​mit array i C?

    Sammendrag: int a[17]; size_t n = sizeof(a)/sizeof(a[0]); Fuldstændig svar: For at bestemme størrelsen af ​​dit array i bytes, kan du bruge sizeof operatør: int a[17]; size_t n = sizeof(a); På min computer er ints 4 byte lange, så n er 68. For at bestemme antallet af elementer i arrayet kan

    LÆS
  • Er der nogen, der har erfaring med at oprette et delt bibliotek i MATLAB?

    En ting at huske er, at Matlab-kompileren faktisk ikke kompilerer Matlab-koden til native maskininstruktioner. Det pakker det simpelthen ind i en selvstændig eksekverbar fil eller et bibliotek med sin egen runtime-motor, der kører den. Du ville være i stand til at køre din kode uden Matlab installer

    LÆS
  • Hvordan implementerer man fortsættelser?

    En god oversigt er tilgængelig i Implementation Strategies for First-Class Continuations, en artikel af Clinger, Hartheimer og Ost. Jeg anbefaler at se på Chez Schemes implementering i særdeleshed. Stakkopiering er ikke så komplekst, og der findes en række velforståede teknikker til at forbedre yde

    LÆS
  • Er skiftoperatorerne (<<, >>) aritmetiske eller logiske i C?

    Når du skifter til venstre, er der ingen forskel mellem aritmetisk og logisk skift. Når du skifter til højre, afhænger skifttypen af ​​typen af ​​værdien, der skiftes. (Som baggrund for de læsere, der ikke er bekendt med forskellen, flytter et logisk højreskift med 1 bit alle bit til højre og udfyl

    LÆS
  • GTK implementering af MessageBox

    Hmm, okay. Jeg vil foreslå kode som denne, så: typedef struct { int type; int result; } DialogData; static gboolean display_dialog(gpointer user_data) { DialogData *dialog_data = user_data; GtkWidget *dialog; if (dialog_data->type & MB_YESNO) dialog = gtk

    LÆS
  • C/C++ bibliotek til læsning af MIDI-signaler fra en USB MIDI-enhed

    PortMidi er et andet open source-MIDI I/O-bibliotek på tværs af platforme, der er værd at tjekke ud. På den anden side, hvis du arbejder på en sysex-app, så fungerer direkte Win32 nemt nok. Er lige stødt på en anden open source-ramme på tværs af platforme, der inkluderer MIDI-understøttelse:Juce.

    LÆS
  • Skriv den smukkeste bytebeat-komposition

    (signeret 16-bit little endian, 8000Hz mono (--format=S16_LE )) Musik Meget bedre end før! (selvom den er ret lang) main(t){for(;;t++)putchar(((7&(((t>>17)+1)>>2)+((t>>10)&1+2*(t>>18&1))*((23468643[7&t>>12]-48)+(3&t>>11))+((3&t>>17)

    LÆS
  • Hvornår gør (x ==x+2)?

    Fortran IV: 2=0 Efter dette er hver konstant 2 i programmet nul. Tro mig, jeg har gjort dette (ok, for 25 år siden) Dette ser ud til at virke: #define x 2|0 Grundlæggende er udtrykket udvidet til (2|0 == 2|(0+2)) . Det er et godt eksempel på, hvorfor man bør bruge parenteser, når man definerer

    LÆS
  • print 1 til 100 uden brug af rekursion og betingelser

    C (90) (79) (59) (47) (42) (40) statisk int x=1;a(){char b[8];printf(%d\n,x++);b[24]-=5*(1-x/101);}main(){a();return 0;} Funktionen a som udskriver tallene kalder ikke sig selv! Jeg udnyttede et bufferoverløb og ændrede returadressen for at få programtælleren til at gå over funktion a igen, så

    LÆS
  • Mindste Lua bordeksemplar

    235 I det væsentlige baseret på indmaden fra SoniEx2s 239-svar. local o,k,F=type,next,{}for n=0,2 do F[n]=function(a,r,t,G)if n<1 or o{}~=o(a)then return a end t={}r=r or{}r[a]=n<2 and t G=F[n%2]for x,y in k,a do t[r[x]or G(x,r)]=r[y]or G(y,r)end return t end end table.copy={shallow=F[2],deep

    LÆS
  • Sammenlign to heltal i C eller C++ uden sammenligningsoperatorer

    90 bytes Hvis vi kan bruge stdio , hvorfor ikke bruge dets formateringsmuligheder til at udføre sammenligning? main(a,b){scanf(%d%d,&a,&b);snprintf(&a,2,%d,b-a);a&=63;putchar(51-!(a-45)-!!(a-48));} Forudsætter ASCII-kompatibel kodning og lille endianness. 72 bytes Kvotienter afru

    LÆS
  • Udvid et C-array

    Vim, 54, 52, 49 47 tastetryk 2wa0<esc>qqYp<c-a>6ldf @[email protected]$dT]dd:%norm dwf{xwC;<CR>gg0P Forklaring: 2wa0<esc> Move 2 words forward, and insert a 0. qq Start recording in register Q Yp D

    LÆS
  • Golf min præ-golfede C

    Haskell, 327 360 418 394 bytes g.(m.w.r.r=<<).lines.f n:c:z=\n#_0123456789++[A..Z]++[a..z] (!)x=elem x f(\\:\n:a)=f a f(a:b)=a:f b f a=a m(#:a)=c:a++[n] m a=a g(a:#:b)=a:[n|a/=n]++c:g b g(a:b)=a:g b g a=a s=span(! \t) r=reverse.snd.s l n(a:b)d|a==d,n=a:w(snd$s b)|1>0=a:l(not$n&&a==\

    LÆS
  • Bestem et C heltal bogstaveligt

    Retina 0.8.2, 60 59 bytes i`^(0[0-7]*|0x[\da-f]+|[1-9]\d*)(u)?(l)?(?-i:\3?)(?(2)|u?)$ Prøv det online! Linket inkluderer testcases. Rediger:Gemt 1 byte takket være @FryAmTheEggMan. Forklaring: i` Match uafhængigt af store og små bogstaver. ^(0[0-7]*|0x[\da-f]+|[1-9]\d*) Start med enten oktal,

    LÆS
Total 7044 -C Programmering  FirstPage PreviousPage NextPage LastPage CurrentPage:353/353  20-C Programmering/Page Goto:1 347 348 349 350 351 352 353