Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
SlimMem - prosta w użyciu klasa do manipulacji pamięcią
#11
Zacytować: Originally Posted by maxkunes Właśnie zastanawiałem się, jakiej sytuacji musiałbyś się martwić, nie gwarantując tego. Wygląda na to, że normalnie w każdym normalnym programie 32/64 bitowym, size_t wykonałoby zadanie w 100% idealnie jako pustka *, odpowiednio 4 bajty i 8 bajtów. Jako unsigned int i unsigned int64 C Standardowa sekcja 7.17
Reply
#12
Używanie std :: uintptr_t pozwoli mi rozebrać to _Win32 crap, które jest zdefiniowane tylko w vs. To mogłoby sprawić, że krzyżowa kompilacja kodu jest zgodna. @ maxkunes Btw jesteś w stanie przekazać własną kombinację flag dostępu do metody otwartej (flagi DWORD), nie musisz używać uproszczonego wyliczenia Dziękuję również za Twoją opinię i konstruktywne komentarze!
Reply
#13
Zacytować: Napisał Pyro666 pragma działa tylko raz na MSVC .. powinien on robić strażników nagłówkowych z ifndef dla kompatybilności z wieloma kompilatorami. pragma once jest obsługiwana w każdym najnowszym kompilatorze. Msvc ++, clang ++, g ++ i intel-c ++ obsługują go w 100%. Użyj uintptr_t, intptr_t i ptrdiff_t dla wskaźników.
Reply
#14
Zaktualizowany zgodnie z Twoimi komentarzami - Dowiedziałem się trochę o C ++ jeszcze raz.
Reply
#15
Zacytować: Originally Posted by Zat Zaktualizowany zgodnie z Twoimi komentarzami - Dowiedziałem się trochę o C ++ jeszcze raz. Świetna robota, wygląda naprawdę czysto i schludnie. Nie mogłem znaleźć nic złego w tym, gdy przejrzałbym go inaczej niż w funkcji get pid, dlaczego nie podajesz dworda jako odniesienia. Sprawia, że kod wygląda bardziej czysto
Reply
#16
Zacytować: Originally Posted by maxkunes Właśnie zastanawiałem się, jakiej sytuacji musiałbyś się martwić, nie gwarantując tego. Wygląda na to, że normalnie w każdym normalnym programie 32/64 bitowym, size_t wykonałoby zadanie w 100% idealnie jako pustka *, odpowiednio 4 bajty i 8 bajtów. Jako unsigned int i unsigned int64 Niektóre platformy mają różne rozmiary dla size_t i void *. Brak, z którym prawdopodobnie będziesz miał do czynienia, ale naprawdę, kogo to obchodzi? To nie jest tak, że kosztuje cię nic, aby użyć odpowiedniego typu. Używanie niewłaściwego typu, ponieważ "działa na moich platformach", gdy poprawne rozwiązanie jest dostępne i równie łatwe w użyciu, po prostu pociera mnie w niewłaściwy sposób. W każdym razie, jeśli jesteś naprawdę ciekawy, możesz rozważyć segmentację architektur. size_t jest przeznaczony do przechowywania rozmiarów / indeksów obiektów / tablic, więc może się zdarzyć, że tablice są ograniczone do jednego segmentu, a wskaźniki zawierają selektor segmentów. Jako konkretny przykład platformy o różnych rozmiarach dla size_t vs void *, wyszukiwarka Google pojawiła się w AS / 400, CDC Cyber i Cray. (A 8086? I VMS?)
Reply
#17
Zacytować: Napisał superdoc1234 pragma once jest obsługiwana w każdym najnowszym kompilatorze. Msvc ++, clang ++, g ++ i intel-c ++ obsługują go w 100%. Właśnie sprawdziłem dziś rano, piszesz. Przepraszam
Reply




Users browsing this thread: 1 Guest(s)