RicardasSim

Clamp Value

Dec 23rd, 2020
1,163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. // -std=c99 -Wall -Wextra -Wpedantic -Wshadow
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdint.h>
  6.  
  7. uint32_t ClampUintVal( uint32_t v, uint32_t min_v, uint32_t max_v )
  8. {
  9.     uint32_t tmp = v < min_v ? min_v : v;
  10.  
  11.     return tmp > max_v ? max_v : tmp;
  12. }
  13.  
  14. int32_t ClampIntVal( int32_t v, int32_t min_v, int32_t max_v )
  15. {
  16.     int32_t tmp = v < min_v ? min_v : v;
  17.  
  18.     return tmp > max_v ? max_v : tmp;
  19. }
  20.  
  21. double ClampDoubleVal( double v, double min_v, double max_v )
  22. {
  23.     double tmp = v < min_v ? min_v : v;
  24.  
  25.     return tmp > max_v ? max_v : tmp;
  26. }
  27.  
  28. int main()
  29. {
  30.  
  31.     printf( "(1) %d\n", ClampUintVal( 5, 2, 10 ) );
  32.     printf( "(2) %d\n", ClampUintVal( 1, 2, 10 ) );
  33.     printf( "(3) %d\n\n", ClampUintVal( 16, 2, 10 ) );
  34.  
  35.     printf( "(4) %d\n", ClampIntVal( 5, 2, 10 ) );
  36.     printf( "(5) %d\n", ClampIntVal( -1, 2, 10 ) );
  37.     printf( "(6) %d\n\n", ClampIntVal( 16, 2, 10 ) );
  38.  
  39.     printf( "(7) %f\n", ClampDoubleVal( 5.0, 2.0, 10.0 ) );
  40.     printf( "(8) %f\n", ClampDoubleVal( -1.0, 2.0, 10.0 ) );
  41.     printf( "(9) %f\n\n", ClampDoubleVal( 16.0, 2.0, 10.0 ) );
  42.  
  43.     return 0;
  44. }
  45.  
  46. /*
  47. output:
  48.  
  49. (1) 5
  50. (2) 2
  51. (3) 10
  52.  
  53. (4) 5
  54. (5) 2
  55. (6) 10
  56.  
  57. (7) 5.000000
  58. (8) 2.000000
  59. (9) 10.000000
  60.  
  61. */
  62.  
Advertisement
Add Comment
Please, Sign In to add comment