fork download
  1. #ifndef __BITMAP__LIB__
  2. #define __BITMAP__LIB__
  3.  
  4. #include <stdio.h>
  5. #include <stdint.h>
  6. #include <stdlib.h>
  7. #define BITS_PER_BYTE 8
  8. #pragma pack(push, 1)
  9.  
  10. struct Pixel {
  11. uint8_t B, G, R;
  12. };
  13.  
  14. struct BitmapHeader {
  15. uint16_t bmType;
  16. uint32_t bmSize;
  17. uint16_t bmReserve1;
  18. uint16_t bmReserve2;
  19. uint32_t bmPixArrayOffset;
  20. };
  21.  
  22. struct BitmapDIB {
  23. uint32_t headerSize;
  24. int32_t bmWidth;
  25. int32_t bmHeight;
  26. uint16_t nPlanes;
  27. uint16_t bitDepth;
  28. uint32_t compressionMode;
  29. uint32_t dataSize;
  30. int32_t xPixPerM;
  31. int32_t yPixPerM;
  32. uint32_t nColorPalette;
  33. uint32_t nColorImportant;
  34. };
  35.  
  36. struct Bitmap{
  37. BitmapHeader header;
  38. BitmapDIB dib;
  39. uint8_t* data;
  40. uint32_t rowSize;
  41.  
  42. Pixel& operator()(uint32_t x, uint32_t y) {
  43. // data != null
  44. uint8_t* pointer = data + x*rowSize + y*dib.bitDepth / BITS_PER_BYTE;
  45.  
  46. return *((Pixel*)pointer);
  47. }
  48.  
  49. Pixel operator()(uint32_t x, uint32_t y) const {
  50. // data != null
  51. uint8_t* pointer = data + x*rowSize + y*dib.bitDepth / BITS_PER_BYTE;
  52.  
  53. return *((Pixel*)pointer);
  54. }
  55. };
  56.  
  57. #pragma pack(pop)
  58.  
  59.  
  60. void freeBitmap(Bitmap*);
  61.  
  62. Bitmap* newBitmapFromFile(const char*);
  63.  
  64. bool writeBitmapToFile(const char*, Bitmap*);
  65.  
  66. void setRowSize(Bitmap*);
  67.  
  68. #endif // __BITMAP__LIB__
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#ifndef __BITMAP__LIB__
^
Main.java:2: error: illegal character: '#'
#define __BITMAP__LIB__
^
Main.java:4: error: illegal character: '#'
#include <stdio.h>
^
Main.java:5: error: illegal character: '#'
#include <stdint.h>
^
Main.java:6: error: illegal character: '#'
#include <stdlib.h>
^
Main.java:7: error: illegal character: '#'
#define BITS_PER_BYTE 8
^
Main.java:8: error: illegal character: '#'
#pragma pack(push, 1)
^
Main.java:12: error: class, interface, or enum expected
};
^
Main.java:14: error: class, interface, or enum expected
struct BitmapHeader {
^
Main.java:16: error: class, interface, or enum expected
	uint32_t bmSize;
	^
Main.java:17: error: class, interface, or enum expected
	uint16_t bmReserve1;
	^
Main.java:18: error: class, interface, or enum expected
	uint16_t bmReserve2;
	^
Main.java:19: error: class, interface, or enum expected
	uint32_t bmPixArrayOffset;
	^
Main.java:20: error: class, interface, or enum expected
};
^
Main.java:22: error: class, interface, or enum expected
struct BitmapDIB {
^
Main.java:24: error: class, interface, or enum expected
	int32_t bmWidth;
	^
Main.java:25: error: class, interface, or enum expected
	int32_t bmHeight;
	^
Main.java:26: error: class, interface, or enum expected
	uint16_t nPlanes;
	^
Main.java:27: error: class, interface, or enum expected
	uint16_t bitDepth;
	^
Main.java:28: error: class, interface, or enum expected
	uint32_t compressionMode;
	^
Main.java:29: error: class, interface, or enum expected
	uint32_t dataSize;
	^
Main.java:30: error: class, interface, or enum expected
	int32_t xPixPerM;
	^
Main.java:31: error: class, interface, or enum expected
	int32_t yPixPerM;
	^
Main.java:32: error: class, interface, or enum expected
	uint32_t nColorPalette;
	^
Main.java:33: error: class, interface, or enum expected
	uint32_t nColorImportant;
	^
Main.java:34: error: class, interface, or enum expected
};
^
Main.java:36: error: class, interface, or enum expected
struct Bitmap{
^
Main.java:38: error: class, interface, or enum expected
	BitmapDIB dib;
	^
Main.java:39: error: class, interface, or enum expected
	uint8_t* data;
	^
Main.java:40: error: class, interface, or enum expected
	uint32_t rowSize;
	^
Main.java:42: error: class, interface, or enum expected
	Pixel& operator()(uint32_t x, uint32_t y) {
	^
Main.java:46: error: class, interface, or enum expected
		return *((Pixel*)pointer);
		^
Main.java:47: error: class, interface, or enum expected
	}
	^
Main.java:53: error: class, interface, or enum expected
		return *((Pixel*)pointer);
		^
Main.java:54: error: class, interface, or enum expected
	}
	^
Main.java:57: error: illegal character: '#'
#pragma pack(pop)
^
Main.java:57: error: class, interface, or enum expected
#pragma pack(pop)
        ^
Main.java:62: error: class, interface, or enum expected
Bitmap* newBitmapFromFile(const char*);
^
Main.java:64: error: class, interface, or enum expected
bool writeBitmapToFile(const char*, Bitmap*);
^
Main.java:66: error: class, interface, or enum expected
void setRowSize(Bitmap*);
^
Main.java:68: error: illegal character: '#'
#endif // __BITMAP__LIB__
^
Main.java:68: error: reached end of file while parsing
#endif // __BITMAP__LIB__
                         ^
42 errors
stdout
Standard output is empty